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 :

Cannot send session cookie


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut Cannot send session cookie
    Bonjour,

    J'ai une erreur dans mon fichier panier.php

    J'ai regardé sur le forum, et j'ai vu qu'il ne fallait rien avant le session_start()

    Mais je n'ai strictement rien. session_start() est en 2eme ligne !!!

    Voici mes erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/123/sdc/6/9/scoot.master/panier/panier.php:1) in /mnt/123/sdc/6/9/scoot.master/panier/panier.php on line 2
     
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/123/sdc/6/9/scoot.master/panier/panier.php:1) in /mnt/123/sdc/6/9/scoot.master/panier/panier.php on line 2

    Merci pour votre aide...

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Une blague de BOM peut-être ?

    http://fr.wikipedia.org/wiki/Byte_Order_Mark

    Tu dois pouvoir dire à ton éditeur de ne pas marquer le BOM (quelque part dans les options)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Alors pour mon problème, j'ai recherché sur le forum,

    et j'ai trouvé qqch disant que cela pouvait venir d'une fonction non reconnue/qui pose problème.

    Extrait de mon fichier panier.php
    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();
    include_once("fonctions-panier.php");
    echo '<?xml version="1.0" encoding="iso-8859-1"?>';?>
     
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <title>Votre panier</title>
    </head>
    Extrait de mon fichier fonctions-panier.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
    <?php
    function creationPanier(){
    $ret=false;
    if (isset( $_SESSION['panier']))
    $ret = true;
    else
    {
    $_SESSION['panier']=array();
    $_SESSION['panier']['libelleProduit'] = array();
    $_SESSION['panier']['qteProduit'] = array();
    $_SESSION['panier']['prixProduit'] = array();
    $ret=true;
    }
    return $ret;
    }
    Je pense que l'erreur vient de ce qui est en gras ici.

    Pouvez vous m'aider ? Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Je ne comprends pas, je commence à désespèrer....

    J'ai essayé de mettre mes 2 fichiers php à la racine de mon ftp, ou est le dossier sessions. Marche toujours pas.

    J'ai essayé de copier/coller mon code dans le bloc note, et enregistrer en utf8. Marche toujours pas.

    Je suis vraiment désespéré...


    Merci de m'aider svp...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Salut,

    1)Supprime la ligne d'include pour voir si ta page a une erreur ou pas ?

    2)Si ca provient de ton fichier que tu inclues regarde si tu as pas laissé un "espace" après la dernière balise ?>.

    Donne plus d'info pour qu'on puisse t'aider au mieux.

    Cya

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Citation Envoyé par Evilam Voir le message
    Salut,

    1)Supprime la ligne d'include pour voir si ta page a une erreur ou pas ?

    2)Si ca provient de ton fichier que tu inclues regarde si tu as pas laissé un "espace" après la dernière balise ?>.

    Donne plus d'info pour qu'on puisse t'aider au mieux.

    Cya
    Merci pour ton aide,

    J'ai donc enlevé de mon fichier panier.php le include (fonctions-panier.php)

    Et j'ai toujours cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/123/sdc/6/9/scoot.master/panier/panier.php:1) in /mnt/123/sdc/6/9/scoot.master/panier/panier.php on line 2
     
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/123/sdc/6/9/scoot.master/panier/panier.php:1) in /mnt/123/sdc/6/9/scoot.master/panier/panier.php on line 2
     
    Fatal error: Call to undefined function: creationpanier() in /mnt/123/sdc/6/9/scoot.master/panier/panier.php on line 26
    Et en plus Fatal Error, car appel a une fonction inexistante.

    Mon erreur vient donc de mon fichier panier.php

    Je vous le met en entier ci après :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    <?php
    session_start();
    include_once("fonctions-panier.php");
     
    if (isset($_GET['action']))
    {
    $erreur=false;
     if(in_array( $_GET['action'],array('ajout', 'suppression', 'refresh')))
      $action = $_GET['action'];
     else
      $erreur=true;
     
     $l = preg_replace('#\v#', '', $_GET['l']);
     
     $q = intval($_GET['q']);
     
     $p = floatval($_GET['p']);
     
    }
     
    elseif(isset($_POST['action']))
    {
     unset($_GET);
     $erreur=false;
     
     if(in_array($_POST['action'],array('ajout', 'suppression', 'refresh')))
      $action=$_POST['action'];
     else
      $erreur=true;
     
      $l = preg_replace('#\v#', '',$_POST['l']);
     
      $p = floatval($_POST['p']);
     
     
     $QteArticle = array();
     
     $i=0;
     foreach ($_POST['QteArticle'] as $contenu){
      $QteArticle[$i++] = intval($contenu);
     
     }
     
    }
     
     
     
     
    if ($erreur==false){
     
     switch($action){
     
      Case "ajout":
      ajouterArticle($l,$q,$p);
      break;
     
      Case "suppression":
      supprimerArticle($l);
      break;
     
      Case "refresh" :
     
      for ($i = 0 ; $i < count($QteArticle) ; $i++)
      {
        modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
      }
      break;
     
      Default:
      break;
     
     }
    }
     
    echo '<?xml version="1.0" encoding="iso-8859-1"?>';?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
    <head>
    <title>Votre panier</title>
    </head>
    <body>
     
    <form method="post" action="panier.php">
    <table style="width: 400px">
    <tr>
          <td colspan="4">Votre panier</td >
    </tr>
    <tr>
          <td>Libellé</td>
          <td>Quantité</td>
          <td>Prix Unitaire</td>
          <td>Action</td>
    </tr>
     
     
    <?php
    if (creationPanier())
    {
    $nbArticles=count($_SESSION['panier']['libelleProduit']);
      if ($nbArticles <= 0)
       echo "<tr><td>Votre panier est vide </ td></tr>";
      else
      {
       for ($i=0 ;$i < $nbArticles ; $i++)
       {
        echo "<tr>";
        echo "<td>".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ td>";
        echo "<td><input type=\"text\" size=\"4\" name=\"QteArticle[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>";
        echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</td>";
        echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['libelleProduit'][$i]))."\">XX</a></td>";
        echo "</tr>";
       }
     
      echo "<tr><td colspan=\"2\"> </td>";
      echo "<td colspan=\"2\">";
      echo "Total : ".MontantGlobal();
      echo "</td></tr>";
     
      echo "<tr><td colspan=\"4\">";
      echo "<input type=\"submit\" value=\"Rafraichir\"/>";
      echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";
     
      echo "</td></tr>";
      }
    }
    ?>
    </table>
    </form>
    </body>
    </html>

    Merci

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Re,

    Le plus simple pour détecter d'où vient une anomalie est de supprimer successivement tes lignes de codes, pour connaitre d'où provient le pb.

    Une fois que tu as ciblé la ligne exacte qui fait tout planter, tu pourras avoir une aide encore plus conséquente ! Je vais tt de même regarder si j'ai ton soucis en faisant un petit copier/coller de ton code.

    See you

    Corrige déjà ca : include(fonctions-panier.php)
    en include(fonctions-panier.php);

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Citation Envoyé par Evilam Voir le message
    Re,

    Le plus simple pour détecter d'où vient une anomalie est de supprimer successivement tes lignes de codes, pour connaitre d'où provient le pb.

    Une fois que tu as ciblé la ligne exacte qui fait tout planter, tu pourras avoir une aide encore plus conséquente ! Je vais tt de même regarder si j'ai ton soucis en faisant un petit copier/coller de ton code.

    See you

    Corrige déjà ca : include(fonctions-panier.php)
    en include(fonctions-panier.php);
    Excuse moi, j'avais oublié le ";" mais je l'ai dans mon fichier

    Je mets mon code du message précédent à jour, j'avais oublié de copier un passage.

    Il me dit que l'erreur vient de la ligne 3...

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Re,

    En faisant mes tests la page affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Notice: Undefined variable: erreur in C:\Program Files\EasyPHP 2.0b1\www\aaaa\index.php on line 48
     
    Notice: Undefined variable: action in C:\Program Files\EasyPHP 2.0b1\www\aaaa\index.php on line 52
     
    Notice: Undefined variable: action in C:\Program Files\EasyPHP 2.0b1\www\aaaa\index.php on line 56
     
    Notice: Undefined variable: action in C:\Program Files\EasyPHP 2.0b1\www\aaaa\index.php on line 60
    Votre panier
    Libellé 	Quantité 	Prix Unitaire 	Action
    Votre panier est vide
    Ton problème est donc le type de ton fichier ... passe le en UTF-8 sans BOM via Notpad ++, et si ca ne veut pas changer de type, alors on va chercher encore un peu ^^

    PS : regarde si ton fichier n'a pas été transféré dans ton FTP en binaire, ca pourrait être un des pbs

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Merci encore pour ton aide.

    Avec un encodage en UTF8 sans BOM, ça fonctionne.


    Pour les personnes à qui ça arriverait :

    Utilisez Notepad++
    Copiez / collez votre code php dans un nouveau fichier Notepad++
    Cliquez sur Format puis sélectionnez Encoder en UTF8 (sans BOM)
    Enregistrer votre fichier en sélectionnant le type *.php

    Normalement ça marche…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/02/2019, 20h16
  2. [Cookies] erreur Cannot send session cookie
    Par dubitoph dans le forum Langage
    Réponses: 10
    Dernier message: 05/01/2009, 16h33
  3. Réponses: 2
    Dernier message: 03/09/2008, 23h25
  4. Réponses: 4
    Dernier message: 06/05/2007, 12h07
  5. Réponses: 5
    Dernier message: 23/01/2007, 22h44

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