Starfox2007
Mitglied
Hi zusammen,
Ich habe ein Problem mit dem generierten Token für ein Formular.
Der Token wird mit dem Formular zusammen in meiner Index.php erzeugt und soll dann aber in einer Includierten Seite überprüft werden.
Problem an der Sache ist das ja wenn ich das Formular per POST übermittle sich der Token in der Session inzwischen ändert und nicht mehr verarbeitet werden kann.
Includierte Seite:
Ich habe ein Problem mit dem generierten Token für ein Formular.
Der Token wird mit dem Formular zusammen in meiner Index.php erzeugt und soll dann aber in einer Includierten Seite überprüft werden.
Problem an der Sache ist das ja wenn ich das Formular per POST übermittle sich der Token in der Session inzwischen ändert und nicht mehr verarbeitet werden kann.
PHP:
<?php
function generateFormToken($form){
$token = md5(uniqid(microtime(), true));
$_SESSION[$form."_token"] = $token;
return $token;
}
$token = generateFormToken("form1");
$key = md5(rand(0,99999));
?>
<form action="./index.php?page=search" method="post">
<div class="searchbar">
<input type="text" name="search" class="searchfield input" id="searchfield" maxlength="200" alt="Suche... " value="Suche... " onclick="document.getElementById('searchfield').value=''; this.style.color = '#000';" />
<input type="hidden" name="key" value="<?php echo $key; ?>" />
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<input type="submit" name="submit" class="search-button" value="" />
</div>
</form>
Includierte Seite:
PHP:
function verifyFormToken($form) {
if (!isset($_SESSION[$form."_token"])) {
return false;
}
if (!isset($_GET["token"])) {
return false;
}
if ($_SESSION[$form."_token"] !== $_GET["token"]) {
return false;
}
return true;
}
if (verifyFormToken("form1")) {
// -->