Bonjour,
J'utilise les sessions et pour ce faire j'effectue bien sur un session_start() en haut de chaque page. Cela fonctionne bien.
On me dit que pour la sécurité mieux vaut utiliser session_regenerate_id().
J'ai donc un fichier, nommé liens-inscriptions, qui s'inclue dans toutes les pages et dont voici le script :
là vous pouvez voir le session_regenerate_id() coupable, qui déclenche l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 //si le session n'est pas ouverte (visiteur non identifié) if(!isset($_SESSION[id])) {echo' Bienvenue invité ( <a href="identification.php">Connexion</a> | <a href="inscription-condition.php">Inscription</a> )';} //si la session est ouverte else { echo" Bienvenue $_SESSION[pseudo] ( <a href=\"compte-accueil.php\">Tableau de bord</a> | <a href=\"A href="http://www.site.com/deconnexion.php\"> déconnexion</a> )" ; //ici on compare le temps actuel avec le temps lors de l'identification //si il y a 30 minutes sans réactualisation de page, on va tout fermer if(time()-$_SESSION['dernier_acces']>1800) { session_destroy(); session_unset(); } //si le délais n'est pas dépassé, on réinitialise la variable de session au temps actuel. else { $_SESSION['dernier_acces'] = time(); session_regenerate_id(); } ;}
D'où vient l'erreur à votre avis ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Warning: session_regenerate_id(): Cannot send session cookie - headers already sent by (output started at /home/site/www/index.php:8 in /home/site/scripts/liens-inscription.php on line 26
Partager