Probleme avec les sessions
Posté : 04 mars 2008, 10:18
bonjour,
J'ai donc un petit soucis de gestion des sessions.
On accède a différente page d'un site après s'être authentifié. Si l'authentification est correcte, on ouvre une session.
En supposant que ce code suffit a sécurisé l'ensemble, il est inséré a chaque début de page :
On ouvre donc bien une session ici.
Ensuite dans ma page, qui est une page de gestion de profil, je peux changer mon email de contact.
Quand je veux le changer donc, après appui sur le bouton confirmation, l'action du formulaire est une page php. Outre le fait d'acceder a la base de donner et de vérifier la validité de l'adresse, voici le code :
On voit ici donc que je rajoute une entrée a la globale $_SESSION. (qui me permettra de ré afficher la nouvelle adresse mail quand on rafraichira la page. Comme ca :
En espérant être clair.
Le problème étant, que la mise a jour ne se fait pas.
Par contre, si je rajoute un session_start(); avant de rajouter l'entrée $_SESSION["adrMail"] = $ChMail; ca marche. Mais un message d'erreur apparait me disant qu'une session est deja ouverte.
A l'aide
merci
J'ai donc un petit soucis de gestion des sessions.
On accède a différente page d'un site après s'être authentifié. Si l'authentification est correcte, on ouvre une session.
En supposant que ce code suffit a sécurisé l'ensemble, il est inséré a chaque début de page :
Code : Tout sélectionner
<?php
// On prolonge la session
session_start();
// On teste si la variable de session existe et contient une valeur
if(empty($_SESSION['login'])) {
// Si inexistante ou nulle, on redirige vers le formulaire de login
header("Location: ../authentification.htm");
exit;
}
?>On ouvre donc bien une session ici.
Ensuite dans ma page, qui est une page de gestion de profil, je peux changer mon email de contact.
Quand je veux le changer donc, après appui sur le bouton confirmation, l'action du formulaire est une page php. Outre le fait d'acceder a la base de donner et de vérifier la validité de l'adresse, voici le code :
Code : Tout sélectionner
// L'adresse mail a changée ?
if($ChMail != $result['mail']) {
$sql = "UPDATE membres SET mail='".$ChMail."' WHERE login='".$ChLogin."'";
$res = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$txtMail = "L'adresse mail a été changé";
$_SESSION["adrMail"] = $ChMail;
include("Profil.php");
Code : Tout sélectionner
<input name="ChMail" type="text" id="ChMail" value="
<?php
if(!empty($_SESSION["adrMail"])) {echo "";}else{echo $_SESSION["adrMail"];}
?>
" size="30" />En espérant être clair.
Le problème étant, que la mise a jour ne se fait pas.
Par contre, si je rajoute un session_start(); avant de rajouter l'entrée $_SESSION["adrMail"] = $ChMail; ca marche. Mais un message d'erreur apparait me disant qu'une session est deja ouverte.
A l'aide