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 :

Problème avec header & session_s


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 40
    Par défaut Problème avec header & session_s
    Bonjour !

    J'ai fait un script pour un espace membre et j'ai un problème de redirection avec la fonction header. L'erreur est la suivante :

    Warning: Cannot modify header information - headers already sent by

    De plus, lorsqu'une session commence il y a aussi cette erreur :

    Warning: session_start(): Cannot send session cache limiter - headers already sent

    Voici mon code (traitement du formulaire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    session_start ();
    $_SESSION["login"]=$verifLogin;
    $_SESSION["mdp"]=$verifMdp;
    header("location: membre.php");
    Pour la redirection, j'ai résolu le problème en utilisant du javascript mais le php est quand même plus propre !

    - Comment résoudre ce problème en utilisant la fonction header ?
    - Comment bien utiliser le session_start ?

    Merci de vos réponses.

    Cristol

  2. #2
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    Et si tu remplacait ton header() par la ligne de javascript suivante:

    window.location = "tadestination.php";

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    L'erreur Warning: Cannot modify header information - headers already sent by est une erreur classique. Elle signifie que tu as envoyé de l'html au client avant d'envoyer ton header. Ca peut être un simple espace ou un retour chariot, ça suffit pour planter ta redirection et ta session.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 40
    Par défaut
    Salut FrankOVD

    Merci de ta réponse.

    J'avais justement contourné le problème de la fonction header en utilisant du javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.href='mapage.html'
    Cepedant, je souhaite plutôt utiliser du php afin de faire exécuter le code uniquement du coté serveur.

    Cristol

  5. #5
    Membre émérite Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Par défaut
    Comme il l'a été dit juste au dessus, ces deux erreurs sont typiquement due au fait que :

    session_start() doit être fait avant les éventuels envoi de balise HTML. Et, même si tu n'as pas marqué explicitement une balise auparavant, un simple ESPACE ou RETOUR CHARRIOT avant ton <? peut s'avérer fatal.

    header() ne s'execute que si il n'y a eu aucun affichage auparavant, au même titre que session_start(). Ainsi, une erreur d'execution de ton fichier provoquera un message et empechera le header de fonctionner (peut etre ton erreur de session justement) mais peut etre cela est il dû également a un ESPACE ou un RETOUR CHARRIOT avant le <?.

    Verifie donc la premiere ligne de ton fichier... ce genre d'erreur m'est souvent arrivé ... et quand on n'y pense pas, cette erreur est vraiment prise de tête

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 40
    Par défaut
    Salut vg33,

    Je n'arrive pas à voir à quel endroit j'envoie du html. Est-ce que ça peut-être dans le fichier de traitement du formulaire ou bien dans la page d'accueil de l'espace membre ?

    La page d'accueil de l'espace membre commence par du php et ensuite il y a du html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
    session_start ();
    include ("connexion.php");
     
    if (isset ($_SESSION["login"]) && isset ($_SESSION["mdp"]))
    {
    echo ("<script language=\"javascript\">alert(\"Bienvenue dans l'espace membre.\")</script>");	
    }
    else
    {
    header ("location: login.html");
    }
    ?>
    Merci d'avance de ta réponse !

  7. #7
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    il y à forcèment quelque chose qui créé l'envoie de tes header donc regardes mieux.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 40
    Par défaut
    Merci BizuR

    Je vais aller regarder mon fichier à la loupe ! Tu as raison, c'est prise de tête de buter sur ce genre de problème !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 40
    Par défaut
    Ouf !!!

    Le problème est résolu. C'était vraiment idiot En fait, il venait du fichier de connexion à la base de données, des lignes étaient rajoutées en plus, après la balise de fermeture du code :
    en les enlevant, tout est rentré dans l'ordre.

    Merci à tous. Bonne nuit !

    Cristol.

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

Discussions similaires

  1. problème avec header
    Par etud_ini dans le forum Langage
    Réponses: 1
    Dernier message: 22/08/2007, 20h36
  2. problème avec header
    Par hartecel dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2007, 21h54
  3. Problème avec header et session
    Par byvan dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2006, 09h25
  4. [JpGraph] problème avec header
    Par ciesco dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 08/01/2006, 17h02
  5. [Système] Problème avec header() ...
    Par tom06440 dans le forum Langage
    Réponses: 15
    Dernier message: 27/10/2005, 21h33

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