Bonjour à tous,
J'ai un petit probleme de header pour pas changer quand je boss sur les sessions....
Alors j'utilise les sessions dans le cadre d'un panier pour e-commerce que je suis en train de developpez.
La page qui me pose probléme est la page de login client.
D'abord l'erreur
Ensuite le code de la section sur le script sessionWarning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in /homepages/7/d203016977/htdocs/dev/vitrine/vitrine/inc_session.php on line 10
et maintenant le code de la page login.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function openSession($userid) { // Connexion à MySQL mysql_connect("", "", ""); mysql_select_db(""); // On supprime la session en cours mysql_query("DELETE FROM site_session WHERE userid = $userid"); // Re-génération du sid session_regenerate_id(); // On insère le nouvel id de session dans la db mysql_query("INSERT INTO site_session (sid, userid, ip, browser) VALUES ('".session_id()."', '$userid', '123.3.3.2', 'IE6')"); $_SESSION['userid']=$userid; return TRUE; }
Voilà je cherche un peu partout mais je ne vois pas comment ne pas faire un session_start en début de mon script login.php étant donné que je test les variables de sessions.
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 session_start(); require_once 'inc_session.php'; if (isset ($_SESSION['userid'])) { openSession($_SESSION['userid']); $view = 'bonjour et bienvenue'; } else { $view ='<form action="login.php" method="post" name="login" target="_self">'; $view .='<input name="username" type="text" value="Votre login" size="10" />'; $view .='<input name="password" type="text" value="Votre mdp" size="10" />'; $view .='<input name="action" type="hidden" value="login" />'; $view .='<input name="login" type="submit" value="Vous connectez" />'; $view .='</form>'; } if ($_POST['action'] == login) { if (empty($_POST['username']) && $_POST['password']) { echo "erreur d'identification, veuillez recommencer"; } else { loginCheck($_POST['username'],$_POST['password']); } } ?>
En fait pour bien comprendre, lorsqu'un client se promène et fait des achats sur le site, une session et un caddie temporaire sont créer, à la fin de ses achats il a le choix de s'identifier si il dispose déjà d'un compte soit de s'en créer un.
C'est pour cela qu'il y a un test sur la page login pour savoir si le client possède déjà une session temporaire et un panier afin de pouvoir les enregistrer par la suite dans sa nouvelle session identifié.
Merci de toute aide qui pourra me permettre d'avancer ^^
Merci pour l'edit c'est plus propre - Je ne vous ai pas mis tout le code du script session car apres c'est juste la fonction qui test si le couple username et password sont correct.
Partager