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 :

cookies créé mais pas de lecture [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut cookies créé mais pas de lecture
    Bonjour.

    A propos des cookies PHP, j'ai fait des lectures et je tente de lire un cookies sans succès mais j'arrive à en créer un. Pour le savoir, je vais dans mes options du naviageur à cookies et il est là.

    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
    <?php 
     
    $name = "test";
    $value = "cafe";
    $expire = time()+60*60*24*30;
    $path = "/";
    $domain = "localhost";
    $secure = "FALSE";
    $httponly = "TRUE";
     
    setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
     
    ?>
     
    <?php
    if(isset($_COOKIE['test'])){
    echo 'Le cookie existe.';
    }
    else{
    echo 'Le cookie n\'existe pas!';
    }
    ?>
    Sachant que setcookie doit être mis en premier avant tout code HTML.

    De l'aide serait bienvenues SVP.

  2. #2
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Bonjour,

    Pour rappel les cookies ne seront pas disponible en lecture lors de la création. Il seront disponible en lecture lors du prochain rechargement de page donc votre code présent affichera toujours "Le cookie n'existe pas!"

    Et vu que vous ne faite pas de test d'existence du cookie avant de le créer il est automatiquement recrée sur cette page ce qui risque d'en empêcher son utilisation.

    Cordialement,

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $secure = "FALSE";
    $httponly = "TRUE";
    TRUE et FALSE sont placés dans des quotes, or, les paramètres secure et httponly attendent des booléens (pas des chaines).
    Du coup, ces chaines seront interprétées (tant bien que mal) comme TRUE (vrai).
    Vu qu'il n'y a pas de SSL ... et bien ça cause problème.
    N'as tu pas remarqués une info indiquant ça ? (dans FF : "Connexions chiffrées uniquement")


    Modifie comme ceci et ça devrait aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $secure = FALSE;
    $httponly = TRUE;

  4. #4
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci.

    N'as tu pas remarqués une info indiquant ça ? (dans FF : "Connexions chiffrées uniquement")
    J'ai remarqué pour cela et aussi pour mon erreur.

    test d'existence du cookie avant de le créer il est automatiquement recrée sur cette page
    Je savais pas ce détails.

    Je vais utiliser les cookies de cette manière:

    Mon but est de créer un cookie pour se rappeler dans quel modèle de site la personne est entrée la dernière fois.

    idéalement, serait que je fasse une page centrale avec lecture du cookie pour indiquer quel modèle la personne était la dernière fois et dans les deux modèles, créé créer un cookie pour mettre à jour l'information de la visite.

    Je sais pas si ça du sens.

    Qu'arrive-t-il si j'ai "session_start()" en début de page,
    ça risque pas de faire un conflit avec setcookies?

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par dancom5 Voir le message
    test d'existence du cookie avant de le créer il est automatiquement recrée sur cette page

    Je savais pas ce détails.
    Théoriquement non, il n'y a pas obligation de tester la présence du cookie pour le créer ou le redéfinir.

    Imaginons qu'on souhaite stocker dans un cookie l'historique de la navigation (donc enregistrer chaque page visitéé), ceci demandera de faire un setcookie() à chaque fois pour le redéfinir/mettre à jour.
    Si cela causait un problème on pourrait alors jamais le faire (ce qui n'est pas le cas).

    Ton problème était lié aux FALSE/TRUE qui étaient des chaines aux lieu des booléens, c'est tout.


    Par contre, il est nécessaire de vérifier ce que contient le tableau $_COOKIE, mais ça tu l'a fait donc c'est bon.

    idéalement, serait que je fasse une page centrale avec lecture du cookie pour indiquer quel modèle la personne était la dernière fois et dans les deux modèles, créé créer un cookie pour mettre à jour l'information de la visite.
    Utiliser un cookie pour ça c'est pas mal, je dirais c'est fait pour.
    Cependant, il risque d'avoir un problème lorsque les utilisateurs reviendront le lendemain ou plusieurs semaines après.

    Le comportement des navigateurs diffèrent sur ce point.
    Snas dire de bêtise, IE et FF par défaut suppriment tous les cookies lors de la fermeture du navigateur, mais pour Chrome il ne me semble pas (je ne sais plus).
    Si tel est le cas (au moins pour IE et FF), il y a fort à parier que les utilisateur laissent cela en état (par défaut).

    Ce qui fait que si tu as un système d'identification, il peut être intéressant d'enregistrer cette info là dans la Bdd pour l'exploiter lors d'une identification pour la placer/mettre à jour dans le cookie.

    S'il n'y a pas d'identification, ça sera alors très difficile voire impossible de mémoriser cette info là à mon sens.


    Qu'arrive-t-il si j'ai "session_start()" en début de page,
    ça risque pas de faire un conflit avec setcookies?
    La session à son propre cookie de session, si tu ne fais rien dessus (pas de setcookie par exemple), il y a aucun risque de conflit.

  6. #6
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    J'ai résolu le problème comme ceci :

    1- à l'en-tête, j'ai mis le test d’existence du cookie en effectuant le test de comparaison à savoir quel était le cookie.

    2- par la suite, je créé le cookies si je choisi par le formulaire mon choix.
    ici, après avoir créé mon cookie, je rafraichi la page avec un meta refresh.

    3- après se trouve mon formulaire en bas de page.

    J'ai un autre problème que je vais expliqué dans un autre poste vu que
    le problème ne concerne pas le sujet des cookies.

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

Discussions similaires

  1. [Débutant] Autoriser des droits d'ajout mais pas de lecture
    Par Casmer dans le forum SharePoint
    Réponses: 17
    Dernier message: 17/11/2015, 12h24
  2. droits en exécution mais pas en lecture
    Par damii1 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 23/03/2009, 15h37
  3. droit sur un dossier: écriture mais pas lecture
    Par boss_gama dans le forum Windows Serveur
    Réponses: 11
    Dernier message: 11/09/2007, 12h26
  4. [Cookies] Problème dans IE mais pas dans FF
    Par Manio 54 dans le forum Langage
    Réponses: 19
    Dernier message: 15/12/2005, 18h30
  5. Un edit control en lecture seule mais pas avec un fond gris?
    Par Magus (Dave) dans le forum Windows
    Réponses: 2
    Dernier message: 04/12/2005, 21h58

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