tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
339
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Hi,
    ich habe mir selber ein Gästebuch und Poll auf meine Homepage gespeichert. Nun möchte ich zum schutz, das der Betreffende User innerhalb 2 Stunden einmal ein Vote und einmal ein Gästebucheintrag machen kann, das aber unabhängig. Ich habe aber keinen Plan wie ich das anstellen soll. Ich weis zwar, dass man dafür die IP braucht und da sman die mit PHP auslesen kann, aber ich weiß nicht wie ich mit der IP umgehen soll.

    mfg
    Klink
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  2. #2
    Registriert seit
    Jul 2001
    Ort
    Bayern
    Beiträge
    969
    Dazu gibt es ein Tutorial von mir in der entsprechenden Abteilung. IP/Cookie Sperren bringen in der Regel nichts, aber auch dazu habe ich was geschrieben. Besser ist eine Bildercodesperre für die man einen etwas größeren Aufwand betreiben muss, um sie zu umgehen.
     

  3. #3
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Es ist von Vorteil uns zu verraten auf welcher Art der Datenspeicherung dein Gästebuch bzw. Poll basiert (SQL oder txt?)

    Grundlegend gesagt speicherst du mit dem Eintrag die IP sowie das aktuelle Datum als Timestamp
    PHP-Code:
    $ip getenv("REMOTE_ADDR");
    $zeit time(); 
    Jetzt musst beim "neu-Eintragen" nur noch überprüfen ob es unter den gespeicherten Einträgen schon einen Datensatz gibt, der die gleiche IP hat und inner halb der letzten zwei Stunden verfasst wurde
    PHP-Code:
    # Daten holen
    $checkzeit time() - 2*60*60;
    $sql "SELECT * FROM gaestebuch WHERE ip = '$ip' AND zeit >= '$checkzeit'";
    if(
    mysql_num_rows($sql) > 0) echo 'Du dafst nocht nicht wieder posten!'
     
    »

  4. #4
    Avatar von split
    split split ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    München
    Beiträge
    574
    Du machst einmal für die Polls und einmal für das Gästebuch eine Tabelle, in der die IP und das Datum (Timestamp) gespeichert wird. Jedesmal, wenn jemand versucht, etwas in das Gästebuch einzutragen (bzw. Poll) wird abgefragt, ob ein Eintrag in der entsprechenden IP-Tabelle existiert, in der die IP = die IP des jenigen der posten will ist und ob dieser Eintrag nicht älter ist als 2 Stunden. Wenn dem so ist, kommt eine Fehlermeldung.

    //EDIT: Mist, zu spät
     

  5. #5
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    Danke schon mal für die schnelle Antwort, aber vodoo, wenn cih deinen 2. Code ausführen lasse kommt das:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/homepage/poll.php on line 12

    zudem hab ich deinen SQL-Query abgeändert:
    PHP-Code:
    $sql 'SELECT * FROM `iplog_poll` WHERE `ip` = \''.$ip.'\' AND `timestamp` >= \''.$checkzeit.'\''
    Was ist daran falsch?

    //EDIT: Dein SQl-Query ist auch richtig, aber wieso auch immer nimmt das Board die Escape-Zeichen weg
    Geändert von meilon (02.05.04 um 12:57 Uhr)
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  6. #6
    Registriert seit
    Aug 2002
    Ort
    Hessen
    Beiträge
    693
    Vielleicht eher so:
    PHP-Code:
    $sql "SELECT * FROM `iplog_poll` WHERE `ip` = '".$ip."' AND `timestamp` >= '".$checkzeit."'"
     
    "... the KKK took my baby away ..."

  7. #7
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    nein, immernoch der selbe Fehler. Ich hab keine Ahnung woran das liegt. Der Server sagt mir, das am mysql_num_rows() was Falsch ist, aber was?
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  8. #8
    Registriert seit
    Aug 2002
    Ort
    Hessen
    Beiträge
    693
    Nein! Der Fehler besagt, dass das übergebene Argument für die mysql_num_rows-Funktion kein gültiges Query-Ergebnis ist, also das Query fehlgeschlagen ist!

    Am besten lässt du dir mal einen aussagekräftigeren Fehler durch mysql_error() ausgeben! Z.B. so:
    PHP-Code:
    [...]
    if (
    mysql_num_rows($sql) > 0) {
        echo 
    'Du dafst nocht nicht wieder posten!';
    }
    echo 
    mysql_error();
    [...] 
     
    "... the KKK took my baby away ..."

  9. #9
    Avatar von split
    split split ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    München
    Beiträge
    574
    Kann es sein, das du den Befehl mysql_query() noch nicht ausgeführt hast? mysql_num_rows() erwartet als Parameter das Query-Result und nicht den Query-String!
     

  10. #10
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    split hatte recht! So hats dann funktioniert!

    mfg
    Klink
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

  11. #11
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Original geschrieben von ludz
    Vielleicht eher so:
    PHP-Code:
    $sql "SELECT * FROM `iplog_poll` WHERE `ip` = '".$ip."' AND `timestamp` >= '".$checkzeit."'"
    Der Timestamp ist in einem Varchar-Feld gespeichert?
    Geändert von Sven Petruschke (02.05.04 um 20:58 Uhr)
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  12. #12
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Ah sorry, hatte das mysql_query() vergessen

    p.s.: HA hab ich mal die neue phpf Funktion benutzt
     
    »

  13. #13
    Registriert seit
    Feb 2004
    Ort
    Leinfelden-Echterdingen
    Beiträge
    781
    nö, ip ist varchar und timestamp ist in timestamp
     
    Bitte dran denken!
    Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten

Ähnliche Themen

  1. poll
    Von Dflex im Forum PHP
    Antworten: 7
    Letzter Beitrag: 14.05.02, 20:29
  2. ASP Poll
    Von Lord-Lance im Forum ASP
    Antworten: 1
    Letzter Beitrag: 22.03.02, 17:29
  3. Poll in ASP
    Von NgiseD im Forum ASP
    Antworten: 5
    Letzter Beitrag: 03.01.02, 13:06
  4. Poll ?
    Von xamunrax im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 14.10.01, 15:32
  5. Poll...und wie?
    Von Inoxx_QM im Forum Sonstige Sprachen
    Antworten: 3
    Letzter Beitrag: 16.04.01, 01:11