Hallo,
habe mir mal eine Shoutbox gecodet:
Hier klappt alles perfekt nur das wenn die IP ersteinmal in der Tabelle ist (nach 1sten Post) Kommt immer die Spam-Protection, sprich der Fehler muss in diesem Vergleich stehen:
Wie gesagt es sollen 3 Min sein stimmt das dann?
PS: In der Tabelle sb_post liegen die Felder ID, Name, Post (selbsterklärend) und in sb_spam gibt es IP (aktuelle IP) und Zeit(timestamp() )
habe mir mal eine Shoutbox gecodet:
PHP:
<?
@mysql_connect("localhost", "root", "") OR die(mysql_error());
mysql_select_db('sb') OR die(mysql_error());
if($_POST['send']) {
$name = $_POST['Name'];
$post = $_POST['Text'];
$ip = getenv("REMOTE_ADDR");
$time = time();
$sql = "SELECT Zeit FROM sb_spam WHERE IP='".$ip."';";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)) { //IP in Table->checken
while($row = mysql_fetch_assoc($result)) $time_db = $row['Zeit'];
if($time_db >= time()-180) { //checken ob älter als 3 min-> eintragen!
$sql = "INSERT INTO
sb_post(Name,Post)
VALUES
('".$name."','".$post."');";
$sql1 = "UPDATE
sb_spam
SET
IP = '".$ip."',
Zeit = '".time()."'
WHERE
IP = '".$ip."';";
mysql_query($sql) OR die(mysql_error());
mysql_query($sql1) OR die(mysql_error());
echo "Danke für deinen Eintrag<br><a href=\"shout.php\">Zurück</a>";
}
else { //wenn neuer dann fehler!
die("Spam-Protection:3 Minuten warten!<br><a href=\"shout.php\">Zurück</a>");
}
}
else { // betreffende IP nicht in Table -> eintragen!
$sql = "INSERT INTO
sb_post(Name,Post)
VALUES
('".$name."','".$post."');";
$sql1 = "INSERT INTO
sb_spam(IP)
VALUES
('".$ip."');";
mysql_query($sql) OR die(mysql_error());
mysql_query($sql1) OR die(mysql_error());
echo "Danke für deinen Eintrag<br><a href=\"shout.php\">Zurück</a>";
}
}
else {
echo"<table>";
$sql = "SELECT
ID,
Name,
Post
FROM
sb_post;";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)) {
while($row = mysql_fetch_assoc($result)) {
$zahl = $row['ID'];
echo "<tr><td";
if(round($zahl/2) - floor($zahl/2) < 1) {
echo" bgcolor=\"#000000\"><font color=\"#FFFFFF\"><b>".$row['Name']."</b>:".$row['Post']."</font></td></tr>";
}
else {
echo" bgcolor=\"#FFFFFF\"><font color=\"#000000\"<b>".$row['Name']."</b>:".$row['Post']."</font></td></tr>";
}
}
}
else {
echo "<td>Noch keine Shouts</td>";
}
echo"<tr>
</tr>
<tr>
<td align=\"center\">
<form action=\"shout.php\" method=\"post\">
<input type=\"text\" maxlength=\"25\" name=\"Name\" onfocus='this.value=\"\"' value=\"name\"><br><br>
<textarea name=\"Text\" onfocus='this.value=\"\"' rows=\"5\" cols=\"25\">shout</textarea><br><br>
<input type=\"submit\" name=\"send\" value=\"shout\"> <input type=\"reset\" value=\"reset\">
</form>
</td>
</tr>
</table>";
}
?>
Hier klappt alles perfekt nur das wenn die IP ersteinmal in der Tabelle ist (nach 1sten Post) Kommt immer die Spam-Protection, sprich der Fehler muss in diesem Vergleich stehen:
PHP:
if($time_db >= time()-180) { //checken ob älter als 3 min-> eintragen!
Wie gesagt es sollen 3 Min sein stimmt das dann?
PS: In der Tabelle sb_post liegen die Felder ID, Name, Post (selbsterklärend) und in sb_spam gibt es IP (aktuelle IP) und Zeit(timestamp() )
Zuletzt bearbeitet: