session

Eléphanteau du PHP | 20 Messages

30 janv. 2007, 23:12

Bonjour,

je souhaite utiliser la notion de session voici mon code
<?php
session_name();
		session_start();
		$_SESSION["mailveriflogin[0]"]=$mailveriflogin[0];
		$_SESSION["nomlogin[0]"]=$nomlogin[0];
		$_SESSION["prenomlogin[0]"]=$prenomlogin[0];
		$url= "Location: accueil.php?PHPSESSID=".$PHPSESSID;
		header($url);
?>
et voici le message d'erreur que j'obtient :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home.5/p/h/a/pharmacic/www/olivier/login.php:9) in /home.5/p/h/a/pharmacic/www/olivier/login.php on line 40

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home.5/p/h/a/pharmacic/www/olivier/login.php:9) in /home.5/p/h/a/pharmacic/www/olivier/login.php on line 40

Warning: Cannot modify header information - headers already sent by (output started at /home.5/p/h/a/pharmacic/www/olivier/login.php:9) in /home.5/p/h/a/pharmacic/www/olivier/login.php on line 45


A l'aide....

merci par avance.
Modifié en dernier par oroger le 30 janv. 2007, 23:31, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

30 janv. 2007, 23:19

sujet traité moultes fois...
Es-tu sur de n'avoir aucun code html avant ce bout de fichier que tu nous montre...?
N'y a t-il pas un petit espace/saut de ligne entre le début du fichier et ta balise php?
ce fichier est-il inclus par d'autres fichier... ? etc...

Je pense que tu as du code html avant, vu la ligne de l'erreur (40 alors que tu nous montres 5 lignes de code... :roll: )

Eléphanteau du PHP | 20 Messages

30 janv. 2007, 23:26

Salut,

oui j'ai vu que ce sujet a deja ete traité un paquet de fois....mais je debute et je n'ai pas trouvé ma soluce dans le forum...voici mon code complet:
<?php
	$host="";
	$dbusername="";
	$dbpassword="";
	$database="";
	$connectserveurlogin1=mysql_connect($host,$dbusername,$dbpassword) or die("Connection impossible au serveur mysql: $host.");
	$connectdatabaselogin2=mysql_select_db($database) or die("pas de base de donnees");
	$mailveriflogin[0]="";
	$passwordveriflogin[0]="";
	$compteactiflogin[0]=2;
	$md5passlogin=md5($passlogin);
	$veriflogin="select idclient,mail,password,compteactif,nom,prenom from tbclient where mail='$maillogin'";
	$resultatveriflogin=mysql_query($veriflogin) or die("Impossible de retrouver vos identifiants. Veuillez proceder a la creation de votre compte.");
	while($identifiantlogin=mysql_fetch_array($resultatveriflogin))
	{
	$mailveriflogin[0]=$identifiantlogin["mail"];
	$passwordveriflogin[0]=$identifiantlogin["password"];
	$compteactiflogin[0]=$identifiantlogin["compteactif"];
	$nomlogin[0]=$identifiantlogin["nom"];
	$prenomlogin[0]=$identifiantlogin["prenom"];
	$idclient[0]=$identifiantlogin["idclient"];
	}
	$idclientlogin=$idclient[0];
	echo("$passwordveriflogin[0] <br> $md5passlogin <br>");
	if(($passwordveriflogin[0]==$md5passlogin) && ($mailveriflogin[0]==$maillogin) && ($compteactiflogin[0]==1))
	{
		session_name();
		session_start();
		$_SESSION["mailveriflogin[0]"]=$mailveriflogin[0];
		$_SESSION["nomlogin[0]"]=$nomlogin[0];
		$_SESSION["prenomlogin[0]"]=$prenomlogin[0];
		$url= "Location: accueil.php?PHPSESSID=".$PHPSESSID;
		header($url);
	}
	elseif($compteactiflogin[0]==0)
	{
	$sujetlogin="Activation de votre compte";
	$entetelogin="";
	$messagelogin="Compte bien crée cliquez sur le lien ci-dessous pour activer votre compte:";
	mail($maillogin,$sujetlogin,$messagelogin,$entetelogin) or die("Impossible d'envoyer le mail de confirmation");
	die("Vous n'avez pas activé votre compte. Nous vous renvoyons le mail pour pouvoir l'activer.");
	}
	else
	{
	die("Identifiants incorrects.");
	}
?>
dois-je creer un dossier session sur mon serveur ????


merci par avance....
Modifié en dernier par oroger le 30 janv. 2007, 23:31, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

30 janv. 2007, 23:30

voilà l'erreur:
echo("$passwordveriflogin[0] <br> $md5passlogin <br>"); 
le echo envoi du html au navigateur, ce qui est interdit avant tout appel à des fonctions tel que session_*(), ou header()...

ps: tu dois avoir l'option désactivé le bbcode dans ce message de cochée... pourrais-tu y remédier, et éditer tes précédents message ?

Eléphanteau du PHP | 20 Messages

30 janv. 2007, 23:44

c impec....merci bcp.....je ne savais pas qu'il ne fallait pas de code html avec ces fonctions.....


merci encore

ViPHP
AB
ViPHP | 5818 Messages

30 janv. 2007, 23:49

Bonsoir,

Donc pour suivre les conseils de Jojolapine, tu mets session_start(); avant le while par exemple, ou en haut de ta page.
Quant au session_name(); apparemment il ne sert à rien dans ton code donc tu peux le supprimer.