mysql eintag nach 10 sek löschn?!

Hey, da ich ja ne shoutbox hab mit captcha will ich auch nen gscheidn spamsschutz mit ip überprüfung machn, nach einem eintrag soll ein mysql eintrag mit der ip gmacht werdn und nach 10 sek soll er wieder gelöscht werdn?!

wie macht man das?!

gruß wolf360

warum kein timestamp, und via cronejob alle 24 stunden löschen, wäre viel „resourcen“ freundlicher

erstel ne extra tabelle mit IP und nem timestamp und dann frag bei eintragen ab

SELECT count(*) FROM shoutbox_ips WHERE ip=$_SERVER[‚REMOTE_ADDR‘]

dann wenn du n ergebniss kriegst einfach nicht eintragen :wink: ^^

und in den head deiner shoutbox datei kommt das hier

DELETE * FROM shoutbox_ips WHERE timestamp>=time() - 10

sollte gehen ^^

alle 24 stundn lösch?! dann kann der ja nur alle 24 stundn nen eintrag machn des is ja viel zu lang xD^^
ich werds so wie slibbo machn!! danke !!!

[I]Edit:

wie is das etz mit dem löschn, des hab ich etz nicht so ganz kappiert?[/I]

[php]

<?php include("verbindungsaufbau.php"); mysql_select_db("wolf360_03"); $zeit = time(); $eintrag = "INSERT INTO `shoutbox_ips` (`ip`,`timestamp`) VALUES ('".$_SERVER['REMOTE_ADDR']."','".$zeit."')"; $eintragen = mysql_query($eintrag); $auswahl = "SELECT count(*) FROM `shoutbox_ips` WHERE `ip`=".$_SERVER['REMOTE_ADDR'].""; $auswahl1 = mysql_query($auswahl); ?>

[/php]
also des is etz mal so grob, aber des mit dem 10 sek löschn, hab ich kp?!!

[php]<?php

include(„verbindungsaufbau.php“);
mysql_select_db(„wolf360_03“);

mysql_query("DELETE FROM shoutbox_ips WHERE timestamp >= ".time() - 10);

$auswahl = „SELECT * FROM shoutbox_ips WHERE ip=“.$_SERVER[‚REMOTE_ADDR‘].„“;
$auswahl1 = mysql_query($auswahl);

if(!mysql_num_rows($auswahl1))
{
mysql_query(„INSERT INTO shoutbox_ips (ip,timestamp) VALUES ('“.$_SERVER[‚REMOTE_ADDR‘].„‚,‘“.time().„')“);

// hier trägst du dann alles in die datenbank ein ^^ also die POSTs die übergeben wurden ^^

}

?>[/php]

willst du nicht verstehen oder verstehst du nicht, du fragst alle tabellen ab die in den letzten 10 sekunden erstellt wurden (mit nem timestamp)

und google mal nach „cronejob“, sollte deinem problem vorsorgen …

Google ist dein Freund -

ich glaube es heißt Cronjob
könnte die Suche erleichtern :wink:

jup, sry =(

okey… danke für die hilfe!!

hab etz mal eine andere methode gmacht—>

[php]

<?php include("verbindungsaufbau.php"); mysql_select_db("wolf360_03"); $zeitn = time(); $uhrzeitn = date("H:i:s",$zeitn); $zeit = time() + 20; $uhrzeit = date("H:i:s",$zeit); $auswahl = "SELECT * FROM `shoutbox_ips` WHERE `ip`= '".$_SERVER['REMOTE_ADDR']."'"; $auswahl1 = mysql_query($auswahl); $tester = mysql_num_rows($auswahl1); $test = mysql_fetch_assoc($auswahl1); $ausgabe = "SELECT * FROM `tests`"; $ausgaben = mysql_query($ausgabe); if($test['timestamp'] >= $uhrzeitn){ echo $sicherheit = "Bitte noch warten bis zum nächsten eintrag, du hast grad scho nen eintrag gmacht!"; } else{ $eintragt = "INSERT INTO `tests` (`name`,`text`) VALUES ('".$_POST['name']."','".$_POST['text']."')"; $eintragenl = mysql_query($eintragt); if($tester >= 1){ echo "IP wurde aktuallisiert!"; $aendern = "UPDATE `shoutbox_ips` Set `timestamp` = '".$uhrzeit."'"; $aender = mysql_query($aendern); header ("Location: ".$_SERVER['PHP_SELF'].""); } else{ $eintrag = "INSERT INTO `shoutbox_ips` (`ip`,`timestamp`) VALUES ('".$_SERVER['REMOTE_ADDR']."','".$uhrzeit."')"; $eintragen = mysql_query($eintrag); } } ?>

[/php]

was haltet ihr davon?!

das mit dem nach 24 h löschn mach ich noch…

VALUES (‚„.$_POST[‚name‘].“‘,

jenach webserver biste echt ge*&%* =)

google.de > sql injection …

Du musst auch bedenken, dass das Löschen von Einträgen nur funktionieren wird, wenn auch jemand das Script aufruft.
Daher wären cronjobs besser, aber auch nicht alle 10 Sekunden

@No0oB: Wenn niemand die seite besucht muss denn was gelöscht werden?
Und was verbraucht eine DELETE anweisung schon für recourcen? die arbeit wird doch vom MySQL server erledigt… man braucht echt nicht für alles cronjobs -.-’

Es verbraucht ressourcen immer zu überprüfen wann die 10 sekunden um sind, und diese alle zehn Sekunden zu löschen.

mysql_free_result() müsste da reichen.

Nils aka XraYSoLo