[PHP] Referrer auswerten

Dieses Thema im Forum "Webentwicklung" wurde erstellt von av-p, 18. September 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. September 2007
    Referrer auswerten

    Hallo.
    Ich möchte eine index.php erstellen, die folgende Möglichkeit bietet:
    Beim Aufruf der Seite von einer fremden Page soll ein Hinweistext angezeigt werden, der in der index.php existiert, mehr erstmal nicht.
    Danach soll nochmals die selbe index.php aufgerufen werden (mit Klick) und diesmal der Referrer erkennen, daß die Seite von der eigenen Domain aufgerufen wurde und somit der Hinweistext übersprungen werden kann. Ebenso darf der Hinweis nicht erscheinen, wenn von einer Unterseite der index angesprungen wird.
    Hat jemand ne Idee, wie sowas geht oder nen Lösungsansatz?
    Und bitte keine Hinweise mit index1.php und index2.php, das will ich grad vermeiden, müßte sonst zuviel umbauen.
     
  2. 18. September 2007
    AW: Referrer auswerten

    Was hielt dich jetzt davon ab "php referer" bei Google einzugeben?

    PHP:
    if(!empty( $_SERVER [ "HTTP_REFERER" ]))echo  'Du kommst von woanders her' ;
     
  3. 18. September 2007
    AW: Referrer auswerten

    du kannst es so machen damit du, damit du deiner index.php einen parameter mitgibst!
    d.h.

    Code:
    z.b. index.php?intern=true
    
    $Hinweistext = ($_GET["internet"]) ? "" : "Hier dein Hinweistext";
    
    dann musst nur noch intern überall und immer diesen parameter mitgeben.

    bzw nach $_SERVER["HTTP_REFERER"] googlen.


    edit: dar war ich zu spät ^^

    gruß blaah
     
  4. 18. September 2007
    AW: Referrer auswerten

    Na haste geut einen abgespammt? Also zum einen hat er ausdrücklich gesagt er möchte solch eine Lösung nicht, zum zweiten würde deine Lösung bedeuten, man müsse noch mehr fummeln, wie z.B. eine Weiterleitung einbauen, welches aber nicht gefordert geschweige denn von dir erklärt wurde und zum dritten ist dieser Vorschlag totaler Schwachsinn, denn der Referer ist normalerweise immer vorhanden, da brauche ich nciht den mehr als überflüssigen umweg über einen GET - Parameter nehmen.

    Also die Auswertung des SERVER - Arrays sollte dir vollkommen reichen. Dieses Array kann wie eine normale Variable genutzt werden, man muss aber bedenken, dass diese Daten vom Browser kommen, also manipuliert oder sogar abgeschaltet sein können.
     
  5. 18. September 2007
    AW: Referrer auswerten

    Bei Google gibt es nur Lösungen mit Datenbank, ich will aber keine Statistik, sondern ne If/Then/Else Abfrage.

    @MakenX: Kann das dann so etwa gehen?:

    if $_SERVER["HTTP_REFERER"] != "meine Domain"
    then Hinweistext
    else richtige Seite

    oder muß ich die Servervariable noch einer anderen zuordnen, um sie auszuwerten?
     
  6. 18. September 2007
    AW: Referrer auswerten

    $_SERVER['HTTP_REFERER'] wird auch intern gesetzt, d.h wenn du von deiner seite aus einen link klickst die auf deine seite verweißt is der referer die vorige seite.

    ich würde eine funktion schreiben, die den host des referers auließt und abgleicht ob man intern verlinkt wurde.

    beispiel: (schnell getippt, kann auch falsch sein)
    PHP:
    <? php
        
    function  is_localhost ( $referer ) {
            
    $rHost  explode ( 'http://' $referer );
            
    $rHost  explode ( '/' $rHost [ 0 ]);
            
    $rHost  str_replace ( 'www.' '' $rHost [ 0 ]);
            
            
    $siteHost  $_SERVER [ 'HTTP_HOST' ];
            if(
    $siteHost  ==  $rHost ) return  true ;
            else return 
    false ;
        }
        
        if(
    is_localhost ( $_SERVER [ 'HTTP_REFERER' ])) echo  'du kommt von hier :)' ;
        else echo 
    'du kommst von wo anders' ;
    ?>
     
  7. 18. September 2007
    AW: Referrer auswerten

    erstens steht nicht direkt, das er nicht mit parametern arbeiten will drin.
    außerdem war es immerhin eine mögliche lösung, also kein spam, mein freund der sonne.

    zum problem:

    Code:
    
    $DER_REFERER = $_SERVER['HTTP_REFERER']; 
    if (strpos(strtolower($DER_REFERER), 'deine-domain.de') === false)
    {
    // Eintragen
    }
    
    
    aber nicht jeder browser gibt einen referer mit. d.h. bei etwa 90% geht der referer und bei den letzten 10% nicht!
     
  8. 18. September 2007
    AW: Referrer auswerten

    Also bitte keinen Streit, ich brauch ne EINFACHE !!! Lösung, die ich auch nachvollziehen kann, da ich sonst nur ASM und VHDL programmiere und das hier mein erster richtiger Versuch in PHP ist.

    @blaah: Und falls 10% rausfallen, nicht so schlimm. Zivile Verluste gibt es immer....
     
  9. 18. September 2007
    AW: Referrer auswerten

    Er schreibt eindeutig, dass er nicht mit unterschiedlichen Seiten (index1.php und index2.php) arbeiten will. was ist der von dir vorgeschlagene GET-Request? Richtig, ein neuer Seitenaufruf. Nötig bei der Auswertung von dem allgegenwertigen HEADER - Array? NEIN! Um Also diesen Parameter zu setzen, muss ein Request erfolgen und jeder Link im Script müßte geändert werden. Mehr als überflüssig.

    Zum Einen hat einer Person, ACHT Minuten vorher bereits die korrekte Lösung angesprochen, und du empfiehlst hier eine Redundanz zu erstellen. Postings ohne Hand und Fuss, besonders welche die Forderungen des Threaderstellers mißachten sind imho als Spam anzusehen.

    Und warum schon wieder alles Doppelt und Dreifach erwähnen? Mehr als Posts sammeln deinerseits ist das doch nicht, sind wir doch mal ehrlich.

    Ich bin vielleicht zu harsch, sry, ich kann es einfach nicht leiden, wie man einem Hilfesuchenden halbgare Antworten gibt und ständig paraphrasieren muss. Beispiel, blaahs Posting, Beispiel Murdocs. auch hier könnte man wieder refaktorieren, man muss ja nicht perfekt sein, aber n bißchen mehr Mühe sollte man sich doch schon geben.

    PS:

    Meine Version von Murdoc

    PHP:
    <? php
    function  is_localhost () {
        return (
    strpos ( $_SERVER [ 'HTTP_HOST' ],  parse_url ( $_SERVER [ 'HTTP_REFERER' ],  PHP_URL_HOST ))) ?  true  false ;
    }
    ?>
     
  10. 18. September 2007
    AW: Referrer auswerten

    jetz is gut, wir vergessen den post und blaah liest nächstesmal vorher genauer
    und noch eine keine verbesserung von maken's script:
    PHP:
    <? php
    function  is_localhost () {
        return (empty(
    $_SERVER [ 'HTTP_HOST' ]) ||  strpos ( $_SERVER [ 'HTTP_HOST' ],  parse_url ( $_SERVER [ 'HTTP_REFERER' ],  PHP_URL_HOST ))) ?  true  false ;
    }
    ?>
    habe noch ein empty($_SERVER['HTTP_HOST']) für leute die keinen referrer senden
    außerdem ist der referrer auch leer, wenn man die seite direkt in die adresszeile eingibt
    ich denke das man die seite ruhig direkt aufrufen darf
     
  11. 18. September 2007
    AW: Referrer auswerten

    Nein die URL darf man antürlich nicht direkt eintippen , mir war einfach nicht bewußt ob die meldung bei leerem header auch angezeigt werden sollte zumal die frage ob es localhost ist, ja nicht direkt beantwortet werden kann, wenn der referer leer ist .... . Um mich aus diesem Dillema zu winden, habe ich extra erwähnt dass es nur das equivalent zu murdocs script ist aber jetzt sind wir ja mittlerweile nur bei einer Zeile, die nahezu perfekt refaktoriert ist .... und in der Zeit hat mir dude auch noch was geschickt .... ... so jetzt sinds aber genug smilys.
     
  12. 18. September 2007
    AW: Referrer auswerten

    Fein, nun hab ich ne Abfrage, aber wie mache ich dann die Ausgabe bei Ja/Nein?
    Etwa so:

    If is_localhost() = true then richtige Seite
    else Hinweistext

    ??? Ich blick da noch nicht ganz durch, wie das dann weiter geht.
    Das mit dem leeren Referrer ist natürlich Mist. Da wäre es gut, wenn kein Referrer mitgesendet wird, daß dann auch der Hinweistext kommt.
     
  13. 18. September 2007
    AW: Referrer auswerten

    bei dem was ich geschrieben hab, wird true zurückgegeben, wenn kein referrer gesendet wurde
    wenn du auch solche leute nicht "reinlassen" willst, musst du das von maken noch einen beitrag höher nehmen
    und wenn du das einbauen willst, würde ich sagen kannst du an dieser stelle anfangen php zu lernen
    dazu gibt es z.B. php.net (siehe Metafragen-Sticky)
    anstoß:
    PHP:
    <? php
    function  is_localhost () {
        return (empty(
    $_SERVER [ 'HTTP_HOST' ]) ||  strpos ( $_SERVER [ 'HTTP_HOST' ],  parse_url ( $_SERVER [ 'HTTP_REFERER' ],  PHP_URL_HOST ))) ?  true  false ;
    }
    if (
    is_localhost ()) {
    }
    else {
    }
    ?>
    bei fragen bitte wie gesagt erst bei php.net gucken
     
  14. 18. September 2007
    AW: Referrer auswerten

    Na da danke ich doch mal allen mit ner BW, auch wenn sie klein ausfällt.
     
  15. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.