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 :

warning: session_start cannot send cookie [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 115
    Points : 50
    Points
    50
    Par défaut warning: session_start cannot send cookie
    bonjour,

    voilà comme vous l'aurez compris, j'ai un problème de session_start. Offline tout fonctionne correctement mais en ligne je reçois le message "warning session_start: cannot send cookie".

    j'ai essayé différentes solutions, mais je ne trouve pas,

    voici mon code:

    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
    <?php
    mysql_connect("blabla", "blabla", "blabla");
    mysql_select_db("blabla");
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    $passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
    $passe = sha1($passe);
    $nbre = mysql_query("SELECT COUNT(*) AS exist FROM connexion WHERE pseudo='$pseudo'");
    $donnees = mysql_fetch_array($nbre);
    if($donnees['exist'] != 0)
    {
    $quete = mysql_query("SELECT * FROM connexion WHERE pseudo='$pseudo'");
    $infos = mysql_fetch_array($quete);
    if($passe == $infos['passe'])
    {
    session_start();
    $_SESSION['pseudo'] = $pseudo;
    header('Location:./accueil.php');
    exit();
    }
    else
    {
    echo 'Vous n\'avez pas rentré les bons identifiants.  Si vous n\'êtes pas encore inscrit sur ce site, <a href="./inscription.php" alt="inscrivez-vous">vous pouvez vous enregistrer ici</a>';
    }
    }
    ?>
    merci de votre aide

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Est ce que tu as déjà envoyé du HTML dans ta page? Si c'est le cas c'est ça qui pose problème : le session start doit être appellé avant. http://fr.php.net/session_start
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 115
    Points : 50
    Points
    50
    Par défaut
    merci beaucoup pour cette réponse très rapide

    entre-temps j'ai trouvé une partie du problème, ma page était encodée en "utf-8", ce qui crée apparemment automatiquement un espace devant "<?php" et en la sauvant en "utf-8 sans BOM" une partie du problème s'est résolu, je réussis maintenant à entrer dans la session mais je reçois encore ce message : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent... je ne comprends pas pourquoi?

    merci beaucoup pour ton aide

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Normalement cela signifie la même chose que ton message d'avant, tu as commencé à écrire dans la page avant de faire le session_start. Ça peut venir d'une autre page que tu inclue, d'un saut de ligne ou d'un espace avant d'ouvrir ta balise php.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 115
    Points : 50
    Points
    50
    Par défaut
    merci pour ton aide,

    sincèrement je ne vois pas où j'ai fait un espace? le document commence avec le code que j'ai mis ci-dessus et de suite après le code <doctype...> démarre. Où pourrais-je avoir un espace de trop? Dois-je mettre tout le code sur une ligne?

  6. #6
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    généralement c'est indiqué dans le message d'erreur, peux-tu nous le mettre en entier ?
    ((output started at yyyy.php:ww) in zzzz.php on line xx)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 115
    Points : 50
    Points
    50
    Par défaut
    J'ai retiré les espaces avant et après les "=" et j'arrive à entrer dans la page d'accueil avec le message d'erreur au-dessus:
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /.../.../.../accueil.php:8) in /.../.../.../accueil.php on line 16

    Ca correspond à la ligne sous session_start();. Même si je mets la ligne "header" juste sous session_start, la ligne d'erreur reste la ligne 16; je ne comprends pas?

    J'arrive à atteindre la page d'accueil mais ma galerie photo liée à une base de données ne s'affiche pas, est-ce dû à ce problème de session?

  8. #8
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Il y a quelque chose que je ne comprend pas : le script montré est celui de la page accueil.php ?

    Si oui, pourquoi y rediriger vers la page accueil.php ?

    Sinon, peux-tu nous montrer le début de ton fichier accueil.php ?

    Une remarque en passant : il ne me parait pas judicieux d'utiliser simultanément mysql_real_escape_string et htmlspecialchars. La première fonction sert à échapper une chaîne de caractères avant utilisation dans une requête Mysql. La deuxième sert à préparer une chaîne de caractères avant affichage dans une page HTML. Utiliser mysql_real_escape_string avant un affichage (avec echo par exemple), ou htmlspecialchars avant utilisation pour une requête MySQL pourra plus tard s'avérer gênant...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 115
    Points : 50
    Points
    50
    Par défaut
    merci pour cette information, je suis une grande débutante php et toute info utile peut m'aider, merci

    ceci était le code de la page "index" où les visiteurs doivent se connecter, en me demandant le code de ma page "accueil" j'ai compris mon erreur, je ne regardais que le code de la page index en pensant que l'erreur venait de là

    je suis en train de modifier le format de toutes mes pages en utf-8 sans BOM et en plaçant le code "session_start" avant tout code html et visiblement mon problème se résout!

    merci beaucoup pour votre aide, sans vous j'aurais cherché des jours encore

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/02/2019, 19h16
  2. Warning: session_start() Cannot send session cache limiter
    Par Anonyme1784 dans le forum Langage
    Réponses: 3
    Dernier message: 13/10/2013, 12h38
  3. Réponses: 3
    Dernier message: 30/07/2012, 16h30
  4. Réponses: 3
    Dernier message: 19/11/2009, 20h28
  5. Réponses: 2
    Dernier message: 18/12/2007, 21h59

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