Hi,
ich weiß dass es dieses Thema schon oft gab.
Doch ich konnte nichts hilfreiches finden.
Folgedes:
Ich habe eine Website mit nur eine Seite (index.php).
Auf dieser Seite gibt es u.a. ein Kontakt Formular.
Beim Aufruf dieser Seite wird die aktuelle Systemzeit (µs) in einer session variable gespeichert. (start zeit).
Drückt man den Button "Senden", wird ebenfalls die Zeit ermittelt und die Differenz berechnet. Damit möchte ich Bots herausfiltern. Diese sind viel schneller als ein Mensch.
Das Problem ist aber, die Session Variable die am start erstellt wurde (Start Timer) ist nicht mehr vorhanden wenn ich die Nachricht abschicken möchte.
Es handelt sich um mehrere Skripts.
1. init.php (Setzt den Start Timer).
2. contact.php (Prüft die Zeitdifferenz und sendet die Nachricht).
Natürlich rufe ich session_start() möglichst am Anfang jedes Scriptes auf.
init.php (Aufruf direkt über <html> bzw. Aufruf der Website)
(Schnipsel)
contact.php (Wird aufgerufen sobald der Senden Button gedrückt wurde. ajax)
(Schnipsel)
Die Session Variable "timeStart" existiert nicht mehr im contact.php script. Obwohl sie zuvor im init.php script erstellt wurde.
Ich dreh noch durch! Keine Ahnung was das Problem ist.
Normalerweise komme ich damit gut klar. So etwas hatte auch schonmal funktioniert.
ich weiß dass es dieses Thema schon oft gab.
Doch ich konnte nichts hilfreiches finden.
Folgedes:
Ich habe eine Website mit nur eine Seite (index.php).
Auf dieser Seite gibt es u.a. ein Kontakt Formular.
Beim Aufruf dieser Seite wird die aktuelle Systemzeit (µs) in einer session variable gespeichert. (start zeit).
Drückt man den Button "Senden", wird ebenfalls die Zeit ermittelt und die Differenz berechnet. Damit möchte ich Bots herausfiltern. Diese sind viel schneller als ein Mensch.
Das Problem ist aber, die Session Variable die am start erstellt wurde (Start Timer) ist nicht mehr vorhanden wenn ich die Nachricht abschicken möchte.
Es handelt sich um mehrere Skripts.
1. init.php (Setzt den Start Timer).
2. contact.php (Prüft die Zeitdifferenz und sendet die Nachricht).
Natürlich rufe ich session_start() möglichst am Anfang jedes Scriptes auf.
init.php (Aufruf direkt über <html> bzw. Aufruf der Website)
(Schnipsel)
PHP-Code:
<?php
session_start();
$now = microtime(true);
$_SESSION["timeStart"] = $now;
?>
(Schnipsel)
PHP-Code:
session_start();
if ($_POST)
{
$now = microtime(true);
$last = $_SESSION["timeStart"]; // VARIABLE DOES NOT EXIST ANYMORE?!?
$_SESSION["timeStart"] = $now;
$time = round($now - $last);
if ($time > 12) // seconds
{
// send mail
}
}
Ich dreh noch durch! Keine Ahnung was das Problem ist.
Normalerweise komme ich damit gut klar. So etwas hatte auch schonmal funktioniert.
Kommentar