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
Warning: 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
Ensuite le code de la section sur le script session
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;
}
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
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']);
		}
}
 
?>
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.

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.