ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
339
339
EMPFEHLEN
-
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
KlinkBitte dran denken!
Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten
-
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.
-
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
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 wurdePHP-Code:$ip = getenv("REMOTE_ADDR");
$zeit = time();
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!';
»
-
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
-
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:Was ist daran falsch?PHP-Code:$sql = 'SELECT * FROM `iplog_poll` WHERE `ip` = \''.$ip.'\' AND `timestamp` >= \''.$checkzeit.'\'';
//EDIT: Dein SQl-Query ist auch richtig, aber wieso auch immer nimmt das Board die Escape-Zeichen wegGeä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
-
Vielleicht eher so:
PHP-Code:$sql = "SELECT * FROM `iplog_poll` WHERE `ip` = '".$ip."' AND `timestamp` >= '".$checkzeit."'";
"... the KKK took my baby away ..."
-
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
-
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 ..."
-
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!
-
split hatte recht! So hats dann funktioniert!
mfg
KlinkBitte dran denken!
Wenn eure Frage geklärt ist, markiert nach eurer Antwort den Thread als erledigt und bewertet die Antworten
-
02.05.04 20:49 #11Der Timestamp ist in einem Varchar-Feld gespeichert?Original geschrieben von ludz
Vielleicht eher so:
PHP-Code:$sql = "SELECT * FROM `iplog_poll` WHERE `ip` = '".$ip."' AND `timestamp` >= '".$checkzeit."'";
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
-
Ah sorry, hatte das mysql_query() vergessen

p.s.: HA hab ich mal die neue phpf Funktion benutzt
»
-
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
-
poll
Von Dflex im Forum PHPAntworten: 7Letzter Beitrag: 14.05.02, 20:29 -
ASP Poll
Von Lord-Lance im Forum ASPAntworten: 1Letzter Beitrag: 22.03.02, 17:29 -
Poll in ASP
Von NgiseD im Forum ASPAntworten: 5Letzter Beitrag: 03.01.02, 13:06 -
Poll ?
Von xamunrax im Forum Flash PlattformAntworten: 3Letzter Beitrag: 14.10.01, 15:32 -
Poll...und wie?
Von Inoxx_QM im Forum Sonstige SprachenAntworten: 3Letzter Beitrag: 16.04.01, 01:11





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren