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 modify header information - setcookie sans envoi de header


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Cannot modify header information - setcookie sans envoi de header
    Bonjour,

    Je rencontre actuellement un problème avec mon site programmé en PhP. J'explique le fonctionnement du système de connexion

    login.php -> La page propose un formulaire de connexion et d'inscription. (L'inscription est pour l'instant inactive, seul les Administrateurs peuvent se connecter)

    Le formulaire de connexion à la méthode "post" sur elle-même. Le système va donc vérifier le nom d'utilisateur et le mot de passe. Tout fonctionne bien, je suis connecté avec un token qui se génère et qui se met dans un cookie avec le nom d'utilisateur dans un autre.

    Durée de vie des cookies : time() + 3600 (Donc une heure à priori)

    logout.php -> Aucun echo ni morceau html, juste 2 setcookies qui met une valeur nulle dans chacun avec une durée de vie time() - 3600
    Puis un petit header() pour retourner à la page de connexion.


    Sauf que sur la page logout ... problème ! Je n'ai aucun echo dans mon fichier ni de code html mais voici les erreurs que j’obtiens :

    Warning: Cannot modify header information - headers already sent by (output started at /home/alfgardf/public_html/logout.php:1) in /home/alfgardf/public_html/logout.php on line 1

    Warning: Cannot modify header information - headers already sent by (output started at /home/alfgardf/public_html/logout.php:1) in /home/alfgardf/public_html/logout.php on line 2

    Warning: Cannot modify header information - headers already sent by (output started at /home/alfgardf/public_html/logout.php:1) in /home/alfgardf/public_html/logout.php on line 3
    Je m'en mort donc les doigts, l'encodage de mon fichier est bien en UTF-8 (pas UTF-8 sans BOM) et aucun espace en trop au début ou à la fin.
    Je tente donc le ob_start() et le ob_flush()

    Mais...

    Warning: Cannot modify header information - headers already sent by (output started at /home/alfgardf/public_html/logout.php:1) in /home/alfgardf/public_html/logout.php on line 2

    Warning: Cannot modify header information - headers already sent by (output started at /home/alfgardf/public_html/logout.php:1) in /home/alfgardf/public_html/logout.php on line 3

    Warning: Cannot modify header information - headers already sent by (output started at /home/alfgardf/public_html/logout.php:1) in /home/alfgardf/public_html/logout.php on line 4

    A vrai dire, je planche la dessus depuis un moment, et même après réécriture du fichier, j'ai le même problème...

    Je viens donc demander de l'aide ici dans l'espoir qu'une solution fleurisse

    Merci par avance !


    Code logout.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php ob_start();
    setcookie('pseudo', '', time() - 3600, null, null, false, true);
    setcookie('token', '', time() - 3600, null, null, false, true);
    header('Location : login.php');
    ob_flush();
    ob_end_flush();?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Justement l'encodage doit être sans BOM.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Oh merci ! Les messages ne s'affiche plus mais cependant la redirection ne se fait pas... Même sans les fonctions ob.

    Du coup deux question me viennent à l'esprit :

    1) Sur quoi joue l'encodage UTF-8 Sans BOM ?

    2) Pourquoi le redirection ne se fait-elle pas ?


    Je peux toujours utiliser la redirection JavaScript, mais le problème c'est si le client à désactivé le JavaScript de son côté c'est foutu

    EDIT :
    C'est bon pour la redirection, il suffisait de retirer l'espace entre "Location" et ":"... Ah l'informatique

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    1) https://fr.wikipedia.org/wiki/Indica...dre_des_octets
    UTF8 avec ou sans BOM, c'est la même chose.
    Le BOM est simplement un espèce d'entête invisible placé dans ton fichier.

    2) essaye sans l'espace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: login.php');
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/05/2012, 13h16
  2. [Cookies] Cannot modify header information sur setcookie
    Par Jimmy Monkey dans le forum Langage
    Réponses: 4
    Dernier message: 21/01/2008, 22h44
  3. Cannot modify header information
    Par rane dans le forum Langage
    Réponses: 5
    Dernier message: 29/03/2006, 14h32
  4. Warning: Cannot modify header information
    Par neXistPa dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2006, 12h22
  5. Réponses: 13
    Dernier message: 15/02/2006, 21h01

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