Hallo ich bin gerade an einem Zeitspam Schutz in meinem Kommentarformular am einbauen.
Im Chrom funktioniert diese Methode auch prima nur im Internet Explorer und im Firefox wird die Zeit bei einem erneuten Aufruf der Seite (also nicht Refrech F5) sondern wenn z.B auf eine andere Seite gegangen wird und dann wieder auf die Seite mit dem Kommentarformular gesprungen wird, wird die Zeit im Input Feld
[HTML][/HTML]
nicht mehr nachgetragen sondern es bleibt die alte vom ersten Aufruf.
Habe diese Methode nun in diversen Beispielen mit der Google Suche gefunden aber nirgends zu diesem Problem einen Hinweis gefunden.
Hier mein Kommentarformular Code inkl. allen Spam verhinderungs Methoden.
[PHP]<?php
$kommentarestatus = undefiniert;
?>
Kommentare
<?php // Eintragen (sent) wurde gerückt if(isset($_POST['sent'])) { // Daten von Formular übernehmen und eMail Daten konfigurieren $timezone = 'Europe/Berlin'; date_default_timezone_set($timezone); $hompage = htmlspecialchars($_POST["hompage"]); // spamschutz $url = htmlspecialchars($_POST["url"]); // spamschutz $email = htmlspecialchars($_POST["email"]); // spamschutz $terms = htmlspecialchars($_POST["terms"]); // spamschutz $name = htmlspecialchars($_POST["name"]); $kommentar = htmlspecialchars($_POST["kommentar"]); $empfaenger = "xxx@xxx.com"; $betreff = "Neuer Kommentar auf ROG Innovation vom ".date("d.m.Y - H:i"); $emailtext = $name. "". $kommentar. "
maincategory: ". $maincategory. "
subcategory: ". $subcategory. "
subsubcategory: ". $subsubcategory. "
page: ". $page; // Daten überprüfen // Zeit wurde gesetzt und enthält einen numerischen String if (isset($_POST['posttime']) && is_numeric($_POST['posttime'])) { $posttime = intval($_POST['posttime']); $verstrichenesendezeit = (time() - $posttime); echo "
Time:". time(). " posttime:". $posttime. " verstrichnezeit:". $verstrichenesendezeit; // verstrichne Zeit seit Formularseite geladen wurde muss grösser als 5 Sec. und kleiner als 6h sein if ($verstrichenesendezeit > 5 && $verstrichenesendezeit < 21600) { if($url=="" && $hompage=="" && $email=="" && $name!="" && $kommentar!="" && !isset($_POST["terms"])) { $kommentarestatus = erfolg; echo'
Erfolgreich eingetragen
'; } else { $kommentarestatus = fehler; echo'
Fehler 1
'; } } else { $kommentarestatus = fehler; echo'
Fehler 2
Fehler 3
Hier können sowohl Fragen wie auch ein Feedback zum oben stehenden Artikel eingetragen werden.
'; echo ''; echo ' *Name:
*Kommentar:
Terms:
*Pflichtfeld
';} ?>
<br>
Hinweis:<br>
Der Eintrag wird nach einer redaktionellen Prüfung in den kommenden Tagen freigeschalten.<br>
<br>
[/PHP]
Hat jemand eine Idee an was es liegen könnte das nicht die aktuelle Zeit gesetzt wird sondern die vom ersten Mal Laden der Seite?