pattern problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pattern problem

    ich habe um genau zu wissen von wo die leute auf die page kommen folgenden code in der index.php
    PHP-Code:
    <?php
       
       $datei 
    "referer.txt";
       
    $date date("d.m.y g:i a");
       
       
    $ref getenv("HTTP_REFERER");
       
    $input$date " : "$ref;
       
    $dateihandle fopen($datei"a");
       if (
    $ref != (""|"*stageshots.at*"))
         
    fputs($dateihandle$input."\r\n");
       
    fclose($dateihandle);
    ?>
    das script funktioniert soweit
    nur will ich da jeder content auf die index.php mit angehängten parametern verlinkt, nicht dass jeder klick da erscheint. mit "" werden direct requests abgefangen, aber wie schaffe ich es dass referer die stageshots.at beinhalten nicht angezeigt werden mit dem wie oben funktioniert das nicht!

    danke für die hilfe!

    ok mit den code oben funktioniert das abfangen wenn gar kein referer vorhanden ist nicht, aber mit folgendem hat zumindest das funktiniert:
    PHP-Code:
    <?php
       
       $datei 
    "referer.txt";
       
    $date date("d.m.y g:i a");
       
       
    $ref getenv("HTTP_REFERER");
       
    $input$date " : "$ref;
       
    $dateihandle fopen($datei"a");
       if (
    $ref != "")
         
    fputs($dateihandle$input."\r\n");
       
    fclose($dateihandle);
    ?>
    Zuletzt geändert von reichi; 05.04.2007, 21:08.

  • #2
    Re: pattern problem

    Original geschrieben von reichi
    ich habe um genau zu wissen von woe die leute auf die page kommen folgenden code in der index.php
    ....
    das script funktioniert soweit nur will ich da jeder content auf die index.php mit angehängten parametern verlinkt nicht dass jeder klick da erscheint aber mit "" werden direct requests abgefangen aber wie schaffe ich es dass referer die stageshots.at beinhalten nicht angezeigt werden mit dem wie oben funktinoert dass nicht!
    OffTopic:
    So kann man das Problem der Zeichensetzung natürlich auch umgehen. Man lässt einfach alle eventuellen Kommata weg und hofft darauf, das irgendjemand, der sich genügend Mühe gibt, den Satz schon verstehen wird.

    Kommentar


    • #3
      @gruenspan das waren auch so meine gedanken.

      @reichi und jetzt dein problem nochmal auf deutsch.

      Kommentar


      • #4
        habs editiert ... sorry

        Kommentar


        • #5
          achso, du möchtest nur überprüfen, ob 'stageshots.at' nicht im referer vorkommt.

          dann soetwas:
          if(strpos($_SERVER['HTTP_REFERER'], 'stageshots.at')!==false)
          // do ...
          Zuletzt geändert von 3DMax; 05.04.2007, 21:32.

          Kommentar


          • #6
            ne ich will dass wenn der referer leer ist oder wenn im referer stageshots.at vorkommt der nicht eingetragen wird.

            werr der referer von irgend einer anderen seite ist dann solls in die liste kommen.

            also muss die abfrage bei leer oder stageshots.at greifen

            es geht im prinzip

            PHP-Code:
             if ($ref != ""
            so abzuändern das stageshots.at auch noch greift

            der rest vom script läuft ja so wies soll
            Zuletzt geändert von reichi; 05.04.2007, 21:09.

            Kommentar


            • #7
              Tu uns bitte noch den Gefallen und verwende die PHP-Tags des Forums, danke
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                so in etwa:
                if(is_empty($_SERVER['HTTP_REFERER'])||strpos($_SERVER['HTTP_REFERER'], 'stageshots.at')!==false)
                // der referer leer ist oder wenn im referer stageshots.at vorkommt - doit

                [EDIT]
                'is_empty' gibt es bisher noch nicht in php, also weiterhin 'empty' benutzen, sorry, hatte ich so kalt-schnauze hingeschrieben.
                Zuletzt geändert von 3DMax; 05.04.2007, 21:53.

                Kommentar


                • #9
                  irgendwie reichen meine php kenntnisse da nihct dafür um den tipp jetzt umzusetzen ...

                  kann ich bei der frage nicht einfach 2 sachen abfragen

                  ich meine dass ich bei

                  PHP-Code:
                  if ($ref != ""|"*stageshots.at*"
                  des so einfüge?


                  i hab ja e selber schon gesucht und mit | müsste man ja alternativen eingeben können, oder hab ich da was falsch verstanden?

                  Kommentar


                  • #10
                    Original geschrieben von reichi
                    ne ich will dass wenn der referer leer ist oder wenn im referer stageshots.at vorkommt der nicht eingetragen wird.
                    PHP-Code:
                    if(empty($referer) || $referer === "stageshots.at")){
                    // do nothing

                    Sowas?

                    Kommentar


                    • #11
                      i hab ja e selber schon gesucht und mit | müsste man ja alternativen eingeben können, oder hab ich da was falsch verstanden?
                      da hast du definitiv was falsch verstanden!
                      Bei dem |-Operator handelt es sich um ein bitweises ODER. Da bitte selbst nachschlagen. Wenn du eine Variable auf zwei werte überprüfen möchtest, musst du das schon in zwei überprüfungen trennen, ähnlich wie deine vorposter dies bereits gemacht haben. Bei deinem if-Statement wäre das wie folgt:
                      PHP-Code:
                      if ( $ref!="" or $ref!="*stageshots.at*" 
                      Wobei die Überprüfung
                      PHP-Code:
                      $ref!="*stageshots.at*" 
                      wirklich nur den String $ref darauf überprüft, ob dieser exakt der Zeichenkette *stageshots.at* entspricht! Du solltest dir also einmal die Lösung von 3DMax ansehen!

                      Kommentar


                      • #12
                        Original geschrieben von reichi
                        kann ich bei der frage nicht einfach 2 sachen abfragen
                        ja klar, habe ich dir doch gezeigt.
                        ich benutze nur lieber das superglobale array _SERVER anstelle von getenv()

                        Kommentar


                        • #13
                          ok danke ich werde mir dass morgen wenn ich von der arbeit heimkomm mal genau ansehen!


                          aber an alle danke für die tolle hilfe!

                          Kommentar

                          Lädt...
                          X