IP Sperre mit Timestamp - klappt nicht?
Steffi
- php
Hallo,
ich habe eine IP Sperre mit Timestamp programmiert, die allerdings nicht klappt.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$res = mysql_query("SELECT ip,Datum FROM shoutbox
WHERE ip
='$ip' AND Datum>'$time'-60 OR Datum<'$time'-60");
if(isset($_POST['submit'])) {
//andere IF Strukturen
}
elseif(mysql_affected_rows() != 0) {
echo "Sie dürfen nur einen Eintrag pro Minute machen!";
}
else {
//Eintragung in die Datenbank
}
?>
Es kommt keine Fehlermeldung, sondern dauernd "Sie dürfen nur einen Eintrag pro Minute machen!". Sie hört gar nicht mehr auf.
Was jemand woran das liegt?
Danke.
Steffi
echo $begrüßung;
ich habe eine IP Sperre mit Timestamp programmiert, die allerdings nicht klappt.
Es kommt keine Fehlermeldung, sondern dauernd "Sie dürfen nur einen Eintrag pro Minute machen!". Sie hört gar nicht mehr auf.
Wie in den meisten Fällen liegt es daran, dass du andere Werte bekommst als du erwartest. Und der übliche Weg ist, sich diese Werte anzeigen zu lassen und mit den erwarteten Werten zu vergleichen.
Meine Vermutung ist, dass du den Unterschied zwischen PHPs Timestamp im Unix-Format und dem von MySQL genutzten Format nicht beachtet hast.
echo "$verabschiedung $name";
Hallo,
Meine Vermutung ist, dass du den Unterschied zwischen PHPs Timestamp im Unix-Format und dem von MySQL genutzten Format nicht beachtet hast.
Nein. Ich habe es beachtet. Ich speicher time() auch in ein VARCHAR-Feld.
LG
Steffi
Hi,
$res = mysql_query("SELECT ip,Datum FROM
shoutbox
WHEREip
='$ip' AND Datum>'$time'-60 OR Datum<'$time'-60");
elseif(mysql_affected_rows() != 0) {
Wo ist denn das INSERT-, UPDATE- oder DELETE-Statement, dessen betroffene Zeilenzahl Du hier ermittelst?
Oder wolltest Du etwa die Anzahl der Zeilen des SELECT ermitteln? Dann wäre mysql_num_rows das Richtige.
cu,
Andreas