Hi
Ich entwickle eine Kommentarfunktion und um Spam zu verhindert, habe ich für jede IP ein stündliches Limit von 3 Kommentaren gegeben.
Wenn jemand ein Kommentar verfasst, prüfe ich einfach, wie viele Kommentare von dieser IP in der letzten Stunde verfasst wurde:
Dann einfach mit mysql_num_rows() zählen. Leider hat das jetzt ewig lange nicht geklappt und hab die ganze Zeit den Fehler gesucht, dabei ist wahrscheinlich die Zeit selbst das Problem!
Hab nämlich festgestellt, dass dieses Script folgende Zeit ausgibt: 2016-09-04 19:26:16
Wenn ich aber einen Kommentar zur DB hinzufüge, wird das Feld "created" (typ datetime) automatisch mit
Ich entwickle eine Kommentarfunktion und um Spam zu verhindert, habe ich für jede IP ein stündliches Limit von 3 Kommentaren gegeben.
Wenn jemand ein Kommentar verfasst, prüfe ich einfach, wie viele Kommentare von dieser IP in der letzten Stunde verfasst wurde:
PHP-Code:
$sql = "SELECT * FROM comments WHERE ip='".$_SERVER['REMOTE_ADDR']."' AND created < ADDDATE(now(), INTERVAL 1 HOUR)";
Hab nämlich festgestellt, dass dieses Script folgende Zeit ausgibt: 2016-09-04 19:26:16
PHP-Code:
$now = new DateTime();
echo "now: " . $now->format('Y-m-d H:i:s');
CURRENT_TIMESTAMP gefüllt. Und dieser ist zur selben Zeit 2016-09-04 15:25:27!
Also ein ziemlicher Unterschied. Die Datenbak läuft auf dem Server aber als localhost (musste ich ja angeben, um mit der DB zu connecten).
Warum ist hier so ein grosser Zeitunterschied und wie löse ich das Elegant?
Danke und schönen Abend!
Also ein ziemlicher Unterschied. Die Datenbak läuft auf dem Server aber als localhost (musste ich ja angeben, um mit der DB zu connecten).
Warum ist hier so ein grosser Zeitunterschied und wie löse ich das Elegant?
Danke und schönen Abend!


Kommentar