mach es wie im tut beschrieben (extra tabelle), is am einfachsten
IP-Sperre
Einklappen
X
-
ok habe ich nun trotzdem läufts schief...
Ich erstelle einen Kommentar, klicke zurück aber kein Kommentar ist zu sehen. In PHPmyAdmin sehe ich, dass im ip_lock Table die ip und das timefeld da ist, welches den wert "00000000000000" hat (?).
Zudem habe ich noch eine Frage: Diese IP-Sperre ist doch eigentlich unsinnig bessergesagt nur für Test, denn es sollte doch eine id für jeden Besucher erstellt werden, oder ?Zuletzt geändert von jOhnny knOx; 29.05.2003, 21:48.
Kommentar
-
Original geschrieben von jOhnny knOx
Zudem habe ich noch eine Frage: Diese IP-Sperre ist doch eigentlich unsinnig bessergesagt nur für Test, denn es sollte doch eine id für jeden Besucher erstellt werden, oder ?Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Naja ist auch egal erstmal
Um nochmal hierdrauf zu kommen:
Original geschrieben von jOhnny knOx
ok habe ich nun trotzdem läufts schief...
Ich erstelle einen Kommentar, klicke zurück aber kein Kommentar ist zu sehen. In PHPmyAdmin sehe ich, dass im ip_lock Table die ip und das timefeld da ist, welches den wert "00000000000000" hat (?).
Kommentar
-
Original geschrieben von jOhnny knOx
In PHPmyAdmin sehe ich, dass im ip_lock Table die ip und das timefeld da ist, welches den wert "00000000000000" hat (?).
welchen typ hat das 'timefeld'?
wie sieht die query aus, mit der du einen datensatz anlegst?I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Original geschrieben von wahsaga
(hab jetzt nicht den kompletten thread durchgelesen, deshalb: )
welchen typ hat das 'timefeld'?
wie sieht die query aus, mit der du einen datensatz anlegst?
Installation:
PHP-Code:mysql_query("CREATE TABLE $news_lock_tname (
ip varchar(15),
timefeld timestamp
)");
PHP-Code:<?
if ($add) {
$order = "SELECT * FROM $news_lock_tname WHERE ip = '".$ip."'";
$result = mysql_query($order);
$order = "DELETE FROM $news_lock_tname WHERE timefeld <=".$invalid;
$result2 = mysql_query($order);
$num_rows = mysql_num_rows($result);
if ($feldname== "") { // Wenn $feldname (z.B. Name) nicht vorhanden ist, kommt 'ne Fehlermeldung
}
elseif ($num_rows== "") { // Hier sollte die IP ausgelesen werden
}
else { // Nun, wenn alles richtig war wird der Kommentar eingetragen
mysql_query("INSERT INTO table (bla, bla2, bla3) VALUES ('$bla', '$bla2', '$bla3')");
mysql_query("INSERT INTO $news_lock_tname (ip, timefeld) VALUES ('$ip', '$time')");
echo "Dankesmeldung";
}
} else { // Das ist nun das else für jeden, der grade die Seite geöffnet hat, also wenn noch nichts eingegeben wurde
echo "<table width='60%' border='0' cellspacing='1' cellpadding='3'>
<form action='?action=test&id=$news[id]' method='post'> ... // und so weiter
...";
// An dieser Stelle, unter dem Formular, ist nun die Ausgabe der Kommentare
?>
Kommentar
-
BTW:Naja es sollte doch eigentlich mit dem Code:
code:--------------------------------------------------------------------------------
$order = "SELECT IP FROM $news_com_tname WHERE ip >= '".$ip."'";
$result = mysql_query($order);
--------------------------------------------------------------------------------
funktionieren, so wie TobiaZ gesagt hat, aber nicht passiert hierbei beim Eintragen.
was bringt das, wenn du nachsiehst, ob du ne IP kleiner als die aktuelle in der Datenbank hast. Ich dachte es wäre klar, dass man nach der aktuellen IP fragt (also "=" ) und nach einem Zeitpunt, der größer ist als die validtime. Wie soll ne Sperre sonst funktionieren. Sorry,dass ich mich da etwas undeutlich/kurz ausgedrückt habe.
Richtig:PHP-Code:"SELECT COUNT(irgendeinfeld)
FROM $news_com_tname
WHERE ip = '".$ip."'
AND WHERE timestamp > '".$validtime."'";
timefeld da ist, welches den wert "00000000000000" hat (?).Zuletzt geändert von TobiaZ; 30.05.2003, 13:03.
Kommentar
Kommentar