
Pour fonctionner, les sessions PHP utilisent un cookie qui mémorise l'identificateur de la session.
Dans un formulaire, il est possible de maintenir la session même si les cookies sont désactivés.
Dans la form (X)HTML, ajouter un champ caché:
<input type="hidden" name="cookie" value="<?php echo session_id() ?>" />
et au début du script PHP appelé par la form, ajouter le code
if(isset($_POST['cookie']) && $_POST['cookie']!= session_id()) session_id($_POST['cookie']); session_start(); session_regenerate_id(TRUE);
La première ligne retrouve la session correcte même si les cookies ne sont pas activés.
La deuxième ligne démarre la session.
La troisième ligne, facultative, renouvelle l'identificateur de session et détruit l'ancienne session, mesure contre les robots spammeurs.