Steffi: IP Sperre mit Timestamp - klappt nicht?

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

  1. 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";

    1. 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

  2. Hi,

    $res = mysql_query("SELECT ip,Datum FROM shoutbox WHERE ip='$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

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.