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 :

Le cookie ne se crée pas (plus) [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Le cookie ne se crée pas (plus)
    Bonjour à tous, que j'appelle humblement à l'aide,

    Ce script tout simple et qui fonctionnait à merveille sur mon site, ne fonctionne plus depuis une semaine . Sauf en local.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    setcookie('cookie_de_test', 'moncookie', time()+3600);
    ?>
    Cela ne crée rien du tout sur mon pc quand il est exécuté par le serveur. Vers où dois-je chercher?

    J'ai checké le php.ini par phpinfo() et je ne vois rien qui empêche l'utilisation des cookies.
    Mon navigateur FF accepte tous les cookies mais le problème ne vient pas de là car j'ai testé à partir d'une autre navigateur, sur un autre pc et le problème est le même: cela vient du serveur PHP (je pense ).

    D'accord, c'est juste pour permettre la connexion automatique mais c'est quand même bien pratique et je n'ai pas envie de retirer tous les tests de tous mes scripts...

    Alors si quelqu'un a une piste cela me ferait plaisir parce que je suis au bord de la crise de nerfs

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Trouvé !

    C'est en demandant à mon provider de reproduire l'erreur et en voyant que son script (bêtement recopié du mien) fonctionnait que je me suis mis à chercher un clou pour me pendre: lui, il y arrivait et pas moi !

    J'ai alors trituré son fichier dans tous les sens et j'y ai vu des choses peu comestibles: il était codé en ANSI

    Or mon script à moi était encodé en UTF-8 et apparemment mon serveur ne digère que l'ANSI tant qu'on ne lui a pas dit le contraire. Et comme justement session_start() et setcookies doivent être envoyés avant toute contrariété, transfert de header et autre code html. cela explique tout.

    J'ai donc simplement ouvert tous les fichiers exécutés avant le premier envoi de html (index.php, init.php, config.php...) avec notepad et je les ai resauvés chacun sous leur même nom, en forçant le codage en ANSI.

    Voilà, voilà...

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je reviens avec plus de précisions parce que j’estime que c’est important.

    Prologue.
    Après avoir découvert le problème de codage ANSI/UTF-8 expliqué dans le post précédent, je constate que session_start() fonctionne très bien mais je ne trouve toujours pas mes cookies.

    Comme je cherchais ce bug depuis 1 mois, j’en étais arrivé, en désespoir de cause, à me tourner vers d’autres solutions et notamment celle d’un changement de serveur. Et je pense que j’aurais dû le faire plus tôt car la solution serait apparue plus vite.

    Venant de recevoir les identifiants pour l’accès à un autre serveur, j’ai fait l’effort de mettre mon site dessus.

    Et là, surprise : tout de suite un beau warning pour me prévenir qu’il ne peut pas créer les cookies car il a déjà reçu un entête et de l’html.
    Inquiétant et rassurant. Inquiétant car je n’envoie rien au serveur mais rassurant parce qu’au moins dans le message d'erreur il me donne la ligne où se situe le délit. Je n’envoie toujours rien à cette ligne mais le fichier.php qui la contient est en… UTF-8 ! Je le converti en ANSI et revoilà mes cookies.

    Conclusion.
    L’UTF-8 est à éviter avant le premier affichage. Après, il s'en fiche.

    Fin de l’histoire.

    Epilogue.
    Pourquoi donc l’ancien serveur ne me disait rien ? Mystère . Tout ce que je peux dire c’est le nouveau serveur est équipé de PHP Version 5.2.12 alors que l’ancien tourne sous PHP Version 5.3.3. Mine de rien ce n’est pas pareil car PHP 5.2 délivre un « warning » on ne peut plus explicite. PHP 5.3 nous ferait donc une régression?

    Moralité.
    Le mieux est parfois l’ennemi du bien

  4. #4
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Il faut sauvegarder les fichiers avec le charset UTF8 (sans BOM).

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

Discussions similaires

  1. Les cookies ne se crée pas
    Par orokham dans le forum Langage
    Réponses: 7
    Dernier message: 02/07/2010, 13h04
  2. [Cookies] Le cookie PHPSESSID ne se crée pas
    Par vodnok dans le forum Langage
    Réponses: 7
    Dernier message: 02/07/2007, 15h49
  3. [Cookies] Le cookie ne se crée pas
    Par babap1 dans le forum Langage
    Réponses: 8
    Dernier message: 20/06/2007, 19h33
  4. [Cookies] Pas plus d'un accès à une page?
    Par Davidabroad dans le forum Langage
    Réponses: 5
    Dernier message: 04/10/2006, 22h46
  5. [langage] pas plus de 1024 caractères?
    Par Kinethe dans le forum Langage
    Réponses: 8
    Dernier message: 15/07/2004, 11h50

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