IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] problème avec les sessions : cannot send session cookie


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de amazircool
    Inscrit en
    Décembre 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 497
    Points : 152
    Points
    152
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	 session_start() ; 
    	 $_SESSION['MoiS']='ma prйmiйre session';
    ?>
    et voila le 2 eme scripte dans un fichier AfficheSession.php
    sur lequel je vais afficher la valeur de session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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 :=)

  2. #2
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    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();

  3. #3
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $var="qsdfsqdf";
    function test(){
        return 'bouh';
    }
    ....
    session_start();
    mais on ne peux pas faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo "blabla";
    session_start();

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Points : 2
    Points
    2
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 />
    
    Je ne comprends pas, voici le code de mon index (le debut):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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�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 : 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
    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 : 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
    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

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    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.

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/07/2012, 16h30
  2. Problème avec les attributs de la session
    Par Didine981 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/05/2010, 09h43
  3. Réponses: 1
    Dernier message: 24/12/2006, 00h09
  4. Réponses: 9
    Dernier message: 18/05/2006, 14h37
  5. [Cookies] Problème avec les sessions PHP !!!
    Par boukay dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo