Hallo,
ich habe meine Formulare mit einem Token geschützt. Ich verwende diese Funktion, um die Richtigkeit des Tokens zu
prüfen:
PHP-Code:
public function matchFormsToken($token) {
if($token == "" || $token != $_SESSION['front_forms_token']) {
return false;
} else {
$random = $this->randomString();
//Build the token
$token = $_SERVER['REMOTE_ADDR'] . $random;
$_SESSION['forms_token'] = $this->hashData($token);
self::$token_for_front_forms = "&front_forms_token=".$_SESSION['front_forms_token'];
return true;
}
}
wenn kein Token mit der Url weitergegeben wird, erstelle ich damit ein Token:
PHP-Code:
if(!isset($_SESSION['front_forms_token'], $_GET['front_forms_token'])) {
$random = $this->randomString();
//Build the token
$token = $_SERVER['REMOTE_ADDR'] . $random;
$_SESSION['front_forms_token'] = $this->hashData($token);
self::$token_for_front_forms = "&front_forms_token=".$_SESSION['front_forms_token'];
}
Nun habe ich das Problem, dass zwar von dem Aufruf des Tokens in einer contruct__ funktion bis zum Script ende, das gleiche Token beibehalten wird. Sende ich jedoch das Formular ab, wird gleich unterhalb von session_start() ein anderes Token angezeigt. Ich habe keine Idee, was schief läuft. Vielleicht kann mir ja jemand einen Tipp geben?
wenn ich die Variable so ausgebe
PHP-Code:
session_start();
print($_SESSION['front_forms_token']."----1-----<br />");
hat diese einen anderen Wert als die durch die URL übermittelte
bevor ich das formular abschicke habe ich in der letzten Zeile die, die in der URL übergeben habe:
PHP-Code:
echo $classes -> getContentDisplay($theme_derivative, $search_key);
print($_SESSION['front_forms_token']."----6-----<br />");
?>
</html>