ciao a tutti,
ho creato un piccolo form dove testare un sistema con token di sicurezza ma ho dei problemi con le varibili di sessione...
questo è la pagina del form :
Codice PHP:
<?php
session_start();
$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
?>
<html>
<head><title></title></head>
<body>
<form action="checkout.php" method="post">
Nome:<input type="text" name="name" />
<input type="hidden" name="token" value="<?= $token ?>" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
inizia la sessione, imposta un valore per il token, e lo salva in una variabile di sessione 'token'.
questo invece è il checkout.php che processa il form :
Codice PHP:
if(isset($_SESSION['token']) && isset($_POST['token']) && $_POST['token']==$_SESSION['token']) {
echo $_POST['name'];
} else {
echo "il token non corrisponde.";
}
mi restituisce "il token non corrisponde", ovviamente ho verificato se la varibile venisse scritta correttamente, allora ho fatto un test con
Codice PHP:
echo $_SESSION['token'];
ed è qui che mi ritorna l'errore php
Notice: Undefined variable: _SESSION in C:\Inetpub\wwwroot\php\token_manuale\checkout.php on line 7
premetto: ho verificato che nel php.ini ci sia il riferimento decomentato alla directory di salvataggio dei files di sessione, e ho verificato che venissero creati correttamente, infatti sotto la C:\temp da me impostata, all'avvio del form, mi crea il file di sessione "sess_1pa127h1rq85qvgce8ioq84ee7" con all'interno : token|s:32:"422e59922b0d41714f6bae0f50692698"; .
Non capisco proprio dove stia il problema