tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
20
ZUGRIFFE
393
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PC Freak PC Freak ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    130
    Hallo, ich habe damals zusammen mit einem anderen User eine IP Sperre programmiert. Klappt auch super, doch möchte ich nun eine kleine Änderung vornehmen und krieg es ohne PHP Kenntnisse nicht hin:

    Unzwar habe ich diese Zeile hinzugefügt:

    PHP-Code:
    $_SERVER["HTTP_REFERER"]='google' // Und wenn der Referer Google ist 
    Wie muss diese Zeile richtig lauten ? (anführungszeichen usw.)

    Also wenn die IP des Benutzers noch nicht in der Datenbank auftaucht und der Referer Google ist, soll etwas ausgegeben werden:

    PHP-Code:
    $pruef=mysql_query("SELECT ip FROM ipsperre WHERE ip='$ip'") or die(mysql_error());
    if(@!
    mysql_fetch_array($pruef)) { // Wenn die IP nicht gefunden wurde
    $_SERVER["HTTP_REFERER"]='google' // Und wenn der Referer Google ist

        
    mysql_query("INSERT INTO ipsperre (ip, time) VALUES ('$ip', '$jetzt')") or die(mysql_error());
        echo 
    $zugriff;

        
    // IP wurde gefunden
    } else { // ansonsten Verweigerung
        
    echo "kein Zugriff";
    }
    ?> 
    Geändert von PC Freak (05.11.08 um 17:12 Uhr)
     

  2. #2
    merzi86 merzi86 ist offline Mitglied Gold
    Registriert seit
    Jun 2007
    Ort
    Sachsen
    Beiträge
    244
    Wenn ich dich richtig verstanden habe soll das Skript erweitern, dass noch überprüft wird, ob der Refferer Google ist.
    Dann kann es so aussehen:
    PHP-Code:
    $pruef=mysql_query("SELECT ip FROM ipsperre WHERE ip='$ip'") or die(mysql_error());
    if(@!
    mysql_fetch_array($pruef) && $_SERVER["HTTP_REFERER"]=='google' ) {

        
    mysql_query("INSERT INTO ipsperre (ip, time) VALUES ('$ip', '$jetzt')") or die(mysql_error());
        echo 
    $zugriff;

        
    // IP wurde gefunden
    } else { // ansonsten Verweigerung
        
    echo "kein Zugriff";
    }
    ?> 
     
    Zitat Zitat von Albert Einstein
    „Ich weiß nicht, welche Waffen im nächsten Krieg zur Anwendung kommen, wohl aber, welche im übernächsten: Pfeil und Bogen.“
    Würde mich über eine Positive beurteilung freuen.

  3. #3
    hmmNaGut hmmNaGut ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wien
    Beiträge
    238
    Soll google in die Datenbank gespeichert werden

    Was das stückencode für mich sagt:

    PHP-Code:
    f(@!mysql_fetch_array($pruef)) { // Wenn die IP nicht gefunden wurde

    $_SERVER["HTTP_REFERER"]='google';
     
    // Ja IP nicht gefunden setzen wir REFERER auf google.
    // Weil es so viel sinn macht speichern wir anschliessend in 
    // die Datenbank

    mysql_query("INSERT INTO ipsperre (ip, time) VALUES ('$ip', '$jetzt')") or die(mysql_error());
    echo 
    $zugriff
    Ich vermute du willst wenn es google ist
    das es die Insert abfrage überspringt

    PHP-Code:
    $pruef=mysql_query("SELECT ip FROM ipsperre WHERE ip='$ip'") or die(mysql_error());
    if(@!
    mysql_fetch_array($pruef) && $_SERVER["HTTP_REFERER"]!='google'  ) { // Wenn die IP nicht gefunden wurde


        
    mysql_query("INSERT INTO ipsperre (ip, time) VALUES ('$ip', '$jetzt')") or die(mysql_error());
        echo 
    $zugriff;

        
    // IP wurde gefunden
    } else { // ansonsten Verweigerung
        
    echo "kein Zugriff";
    }
    ?> 
    Ohne Gewähr
     
    Wenn euch geholfen wurde bitte die Helfer positiv bewerten und das Thema als "erledigt" markieren.

    spiele-deals.at dvd-forum.at

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Der Referer wird aber nicht nur "google" beinhalten, deshalb empfehle ich eine Prüfung mit strpos().
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    hmmNaGut hmmNaGut ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wien
    Beiträge
    238
    Kann sein das mein Vorposter recht hat.
    mit der Aussagen logik hab ich es ein bisschen

    Ich probier halt gerne
    PHP-Code:
    if(@!mysql_fetch_array($pruef) && $_SERVER["HTTP_REFERER"]!='google'  )

    oder
    if(@!mysql_fetch_array($pruef) && $_SERVER["HTTP_REFERER"]=='google'  
     
    Wenn euch geholfen wurde bitte die Helfer positiv bewerten und das Thema als "erledigt" markieren.

    spiele-deals.at dvd-forum.at

  6. #6
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Ich meinte eher:

    PHP-Code:
    if(@!mysql_fetch_array($pruef) && strpos($_SERVER["HTTP_REFERER"], 'google' ) === false 
    Das würde jetzt prüfen:
    IP ist nicht in der Datenbank UND der Referer ist nicht Google.

    Grundsätzlich solltest du aber bedenken, dass der Referer nicht immer gesetzt ist.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  7. #7
    hmmNaGut hmmNaGut ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wien
    Beiträge
    238
    Felix Jacobi hat natürlich Recht zu dem gibt es ja auch noch
    msn und und und...
     
    Wenn euch geholfen wurde bitte die Helfer positiv bewerten und das Thema als "erledigt" markieren.

    spiele-deals.at dvd-forum.at

  8. #8
    PC Freak PC Freak ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    130
    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    PHP-Code:
    if(@!mysql_fetch_array($pruef) && strpos($_SERVER["HTTP_REFERER"], 'google' ) === false 
    Das würde jetzt prüfen:
    IP ist nicht in der Datenbank UND der Referer ist nicht Google.
    Die Ip darf noch nicht in der Datenbank sein und der Referer muss Google sein.

    Mit dem Code klappt das leider irgendwie nicht. Scheint so als erkenne dass Script nicht, ob ich von Google komme:

    PHP-Code:
    $sperre=time()-3600;
    $jetzt=time();
    $ip getip();

    mysql_query("DELETE FROM ipsperre WHERE time<$sperre") or die(mysql_error()); // Löscht Einträge, die veraltet sind

    $pruef=mysql_query("SELECT ip FROM ipsperre WHERE ip='$ip'") or die(mysql_error());
    if(@!
    mysql_fetch_array($pruef) && $_SERVER["HTTP_REFERER"]=='google' ) {

        
    mysql_query("INSERT INTO ipsperre (ip, time) VALUES ('$ip', '$jetzt')") or die(mysql_error());
        echo 
    $werbung;

        
    // IP wurde gefunden
    } else { // ansonsten Verweigerung
        
    echo "";
    }
    ?> 
     

  9. #9
    hmmNaGut hmmNaGut ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wien
    Beiträge
    238
    Wenn es google sein muss wenn es die IP nicht gibt
    dann statt false true

    VOM Felix
    if(@!mysql_fetch_array($pruef) && strpos($_SERVER["HTTP_REFERER"], 'google' ) ===true )
     
    Wenn euch geholfen wurde bitte die Helfer positiv bewerten und das Thema als "erledigt" markieren.

    spiele-deals.at dvd-forum.at

  10. #10
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Danke für die Verbesserung, allerdings gibt strpos() kein true zurück.

    PHP-Code:
    if(@!mysql_fetch_array($pruef) && strpos($_SERVER["HTTP_REFERER"], 'google' ) !== false 
    hmmNaGut, verwende doch bitte die PHP Tags um Code in die richtige Box zu tun und das Highlight zu aktivieren.

    [php ][/php ]

    Ohne Leerzeichen, versteht sich.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  11. #11
    PC Freak PC Freak ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    130
    klappt leider auch so nicht

    PHP-Code:
    $sperre=time()-3600;
    $jetzt=time();
    $ip getip();

    mysql_query("DELETE FROM ipsperre WHERE time<$sperre") or die(mysql_error()); // Löscht Einträge, die veraltet sind

    $pruef=mysql_query("SELECT ip FROM ipsperre WHERE ip='$ip'") or die(mysql_error());
    if(@!
    mysql_fetch_array($pruef) && strpos($_SERVER["HTTP_REFERER"], 'google' ) === true ) { 

        
    mysql_query("INSERT INTO ipsperre (ip, time) VALUES ('$ip', '$jetzt')") or die(mysql_error());
        echo 
    $werbung;

        
    // IP wurde gefunden
    } else { // ansonsten Verweigerung
        
    echo "";
    }
    ?> 
    Gibt es vielleicht eine andere Funktion um den referer auszulesen?
     

  12. #12
    hmmNaGut hmmNaGut ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wien
    Beiträge
    238
    Lass dir mal per print oder echo ausgeben.

    PHP-Code:
    print $_SERVER["HTTP_REFERER"]; 
    Ja, werde es in Zukunft den BC Code verwenden nur dachte ich mir bei einer Zeile,
    sei das ein wenig Umständlich.
     
    Wenn euch geholfen wurde bitte die Helfer positiv bewerten und das Thema als "erledigt" markieren.

    spiele-deals.at dvd-forum.at

  13. #13
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Vergleiche bitte mit meinem Quelltext oben.

    strpos() gibt niemals true zurück. Sondern boolean false oder int.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  14. #14
    hmmNaGut hmmNaGut ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wien
    Beiträge
    238
    Ach, an das hatte ich nicht gedacht.
    Ist ja logisch

    Aber aufgrunder der Frage nach richtig oder falsch kommen dann solche Verwierrungen.
     
    Wenn euch geholfen wurde bitte die Helfer positiv bewerten und das Thema als "erledigt" markieren.

    spiele-deals.at dvd-forum.at

  15. #15
    PC Freak PC Freak ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    130
    Es funktioniert einfach nicht

    Mit dem PHP Code erhalte ich folgendes, "hmmNaGut":

    http://www.google.de/search?q=begrif...ient=firefox-a
     

Ähnliche Themen

  1. IP-Sperre
    Von susi19 im Forum PHP
    Antworten: 22
    Letzter Beitrag: 13.01.11, 11:20
  2. Suche Refferer-Partner-Script
    Von RageNo1 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 14.02.05, 22:04
  3. Antworten: 6
    Letzter Beitrag: 02.08.04, 06:43
  4. IP -Sperre
    Von Yoda im Forum PHP
    Antworten: 11
    Letzter Beitrag: 08.06.03, 23:03
  5. IP Sperre?
    Von RageNo1 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 22.03.03, 16:53