Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2007, 03h34   #1
Débutant
 
Avatar de amazircool
 
Inscription : décembre 2005
Messages : 502
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 502
Points : 111
Points : 111
Par défaut [Cookies] problème avec les sessions : cannot send session cookie

Salut j’ai un problème au niveau des sessions,
Voila mon scripte sur un fichier Session.php
Code :
1
2
3
4
<?php
	 session_start() ; 
	 $_SESSION['MoiS']='ma pr&#1081;mi&#1081;re session';
?>
et voila le 2 eme scripte dans un fichier AfficheSession.php
sur lequel je vais afficher la valeur de session
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php	 
  session_start();
	 if( isset($_SESSION['MoiS'] ) ) 
	 {
	   echo 'la session est existe';
	   echo $_SESSION['MoiS'];
	 }								 
	 else
	 {
	 echo " la session n'existe plus";
	 }
?>
Alors quant je vais démarrer l affichage de ma session un message de type :
Citation:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\session\affichersession.php:4) in C:\wamp\www\session\affichersession.php on line 5
merci :=)
__________________
"L'éducation, c'est le début de la richesse, et la richesse n'est pas destinée à tout le monde"
amazircool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 06h35   #2
Membre confirmé
 
Avatar de max44410
 
Étudiant
Inscription : juin 2003
Messages : 426
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2003
Messages : 426
Points : 259
Points : 259
Envoyer un message via MSN à max44410 Envoyer un message via Skype™ à max44410
c'est ecrit dans l'erreur, ... tu dois avoir quelque chose avant ton session_start(), apparement c'est dans "affichersession.php".

il ne faut absolument aucune ligne de code avant session_start();
__________________
Venez voir par là...
max44410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 10h59   #3
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Citation:
il ne faut absolument aucune ligne de code avant session_start();
Petite précision : on peut caser du code, mais il ne faut pas la moindre sortie dans le navigateur avant le session_start();.
Par exemple, on peut très bien faire :
Code :
1
2
3
4
5
6
7
8
 
<?php
$var="qsdfsqdf";
function test(){
    return 'bouh';
}
....
session_start();
mais on ne peux pas faire:
Code :
1
2
3
 
echo "blabla";
session_start();
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 10h57   #4
Invité de passage
 
Inscription : avril 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 2
Points : 1
Points : 1
Par défaut J'ai un problème !!!

BOnjour, j'ai un problème, je n'arrive pas a le resoudre. J'ai pourtant passé pas mal d'heures dessus. J'ai comme erreur:

Code :
1
2
3
4
<b>Warning</b>:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at V:\dev\J.Baran\xampp\htdocs\index.php:1) in <b>V:\dev\J.Baran\xampp\htdocs\index.php</b> on line <b>2</b><br />
<br />
<b>Warning</b>:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at V:\dev\J.Baran\xampp\htdocs\index.php:1) in <b>V:\dev\J.Baran\xampp\htdocs\index.php</b> on line <b>2</b><br />
&#65279;
Je ne comprends pas, voici le code de mon index (le debut):

Code :
1
2
3
4
5
<?php
session_start();
require_once("fonctions/langueNavigateur.php");
require_once("class/utilisateur.php");
require_once("conf/conf.php");
voicit ensuite les autres fichiers requis :

fonctions/langueNavigateur.php
Code :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/*
 <com> Titre : Langue du navigateur 
 Auteur : m garnit 
 Description : Pour site multilingue:
détermine la première langue reconnue par un navigateur et affiche directement le site dans cette langue, si le site la parle. Sinon affiche dans la langue par defaut (français proposé) mg05 </com>
*/
function langueNavigateur(){
/* 
<com>  exemple d'utilisation de la fonction:
if(!$dirlangue)
$dirlangue=langueNavigateur();
include("$dirlangue/unfichier.php");  mg05 </com>
*/  
/*<com> langue par défaut si aucune trouvée jb070416 </com>*/
$languenav="fr";
/* 
<com> récupère dans un tableau les langues du navigateur 
à partir de $_SERVER['HTTP_ACCEPT_LANGUAGE'].
(en effet plusieurs langues peuvent avoir été configurées pour
un navigateur). mg05 </com>
*/
$langue=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
/* extrait pour chaque langue les 2 premieres lettres de la cha&#65533;ne */
$lang=array();
for($i=0;$i<count($langue);$i++){
ereg("^([A-Za-z]{2})(.*)$",$langue[$i],$match);
$lang[$i]=$match[1];
}
/* 
lire à l'envers le tableau des langues du navigateur
pour retenir la langue compatible la plus haute dans la pile. 
(si le site parle anglais et italien, et le nav du visiteur italien et anglais,
retenir la première de ces deux langues déclarée par le nav)
*/
for ($i = count($lang); $i>-1; $i--) {
switch($lang[$i]) {
/* décocher les clauses case ou  rajouter d'autres clauses case selon les langues acceptées par le site */
case 'fr': $languenav="fr"; break;
case 'en': $languenav="en"; break;
case 'de': $languenav="de"; break;
case 'nl': $languenav="nl"; break;
case 'it': $languenav="it"; break;
case 'es': $languenav="es"; break;
}
}
return($languenav);
}
?>
puis voici le code de class/utilisateur.php :
Code :
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
31
32
33
34
<?php
class utilisateur 
	{
	var $idutilisateur;
	var $nomutilisateur;
	var $login;
	var $email;
	var $pass;
	var $datecreation;
	var $datepremiereconnexion;	
	var $datedernierconnexion;
	var $idfiliale;
 
 
	function utilisateur($Login,$Password)
		{
		$login=mysql_real_escape_string($Login);
		$pass=mysql_real_escape_string($Password);
 
		$result=mysql_query("SELECT * FROM tblutilisateur WHERE login='".$Login."'");
		$row=mysql_fetch_assoc($result);
 
		$this->login = $row['login'];
		$this->pass = $row['pass'];
 
		$this->idutilisateur = $row['idutilisateur'];
		$this->nomutilisateur = $row['nomutilisateur'];
		$this->email = $row['email '];
		$this->datecreation = $row['datecreation'];
		$this->datepremiereconnexion = $row['datepremiereconnexion'];
		$this->datedernierconnexion = $row['datedernierconnexion'];
		$this->idfiliale = $row['idfiliale'];
		}
}?>
puis enfin le code de conf/conf.php
Code :
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
31
32
33
34
35
36
37
38
39
40
<?php
$server="localhost";
$login="sat";
$password="sedoc";
$base="test_sat_3";
/*
<com> Dans le cas d'un travail en local sur phpmyadmin sans avoir crée d'utilisateur, enlevez les commentaires ci  
dessous, et mettez la prtie ci dessus en commentaire, pour affecter les bonnes valeurs selon le type de connexion. jb070416 </com>
*/
/*
$server="localhost";
$login="root";
$password="";
$base="tao";
*/
/*  Version   */
$version = "1-1-0";
/*
<com> Procédure de connexion. Besoin des infos serveur, login et password. Le '@' permet de ne pas afficher les   
erreurs/warning éventuellement produits, le"p" de "pconnect" permet d'effectuer une connexion persistante. jb070416 </com>
connexion à MySQL:
*/
$db = mysql_pconnect("$server", "$login", "$password") or die ('Erreur :'.mysql_error());
/*$db = mysql_pconnect("$server", "$login", "$password") or die ('Erreur :'.mysql_error());*/
/*
<com> Procédure qui va se connecter a la base de donnée $base en utilisant la valeur retour $db de la précédente procédure de connexion   
Sélection de la BDD : jb070416 </com>
*/
mysql_select_db("$base",$db) or die ('Erreur :'.mysql_error() ); 
/*mysql_select_db("$base",$db) or die ('Erreur :'.mysql_error() ); */
 
/* en local
define('HOST', 'localhost');
define('USER', 'root');
define('PASSWORD', '');
define('BDD', 'projweb');
 $idconnexion = @mysql_pconnect(HOST, USER, PASSWORD);
 $connexionreussie = @mysql_select_db(BDD, $idconnexion); 
 */
?>
Cela serait super sympa de m'aider, j'ai pourtant l'impresison de ne pas envoyer de html avant... je susi perdu
hidakwon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2007, 11h07   #5
Invité régulier
 
Inscription : août 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 12
Points : 7
Points : 7
hi
je vien d'avoir le meme probleme et c'etait parceque je fesai appele au fichier qui comportele session_start() a traver un include du style index.php appel session.php et avant de faire appel a session.php j'ai fait des echo donc j'ai enlever mon session_start() de session.php et je l'ai mis au debut d'index.php.
j'espere que sa va t'aider.
sinleon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h15.


 
 
 
 
Partenaires

Hébergement Web