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 :

setcookie et affichage non instantané? [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 238
    Points : 95
    Points
    95
    Par défaut setcookie et affichage non instantané?
    Bonjour

    J'ai créé deux fonctions pour créer(initsessioncookie) et afficher(infosessioncookie) les valeurs des sessions et des cookies dans un fichier php
    La fonction infosessioncookie affiche bien les valeurs des sessions partout où je l'appelle mais pas les cookies, je suis obligé de faire F5 ou un header("Location: fichier.php") pour une Redirection/refresh du navigateur.

    Pourquoi ce comportement pour les cookies ?

  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
    Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante.
    http://php.net/manual/fr/function.setcookie.php

    C'est parce que c'est le navigateur qui fourni les cookies, il faut donc qu'il refasse une requête vers le serveur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 238
    Points : 95
    Points
    95
    Par défaut
    J'avais pourtant lu en large et en travers http://php.net/manual/fr/function.setcookie.php
    Mais dans les faits je m'en doutais un peu.

    Donc en fait si je veux que ça s'affiche. Juste après setcookie, je fais un header(location: de la page.php). Pas d'autres solutions ?
    Si la page a beaucoup de données, cela peut faire un lag au rechargement ?

    Comment contourner ce problème si cela doit arriver ?
    (j'ai pensé exécuter la fonction header(location: mapage.php?o=i$cs) avec des options url en plus bien spécifique à l'affichage des cookies mais un peu plus simple "o=i$cs" par exemple,
    mais dans ce cas si je dois afficher en permanence des infos qui peuvent changer je dois faire attention que mapage.php?o=i$cs est ma page "par défaut", n'est ce pas ?)

  4. #4
    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
    A quoi sert ce cookie ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 238
    Points : 95
    Points
    95
    Par défaut
    à un utilisateur d'ouvrir plusieurs sessions, de les fermer ou de les réouvrir même si il ferme ou rouvre son navigateur. Une sorte de petit "historique" qui sera selon certains critères validés à la fin envoyé dans la bdd... mais ce n'est pas à l'ordre du jour

  6. #6
    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
    Après c'est juste un test de condition à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $session = 3;
    setcookie("tasession", $session);
    ....
    ....
    ....
    if (!isset($session)) {
       if (isset($_COOKIE['tasession'])) {
              $session = $_COOKIE['tasession'];
       }
       else {
              $session = valeurpardéfaut
       } 
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 238
    Points : 95
    Points
    95
    Par défaut
    C'est tout a fait cela comme dans ton exemple !
    Sauf que je pige pas isset($session) renverra toujours vrai ($session=3) sauf sur une autre page enfin bref c'est un détail !

    Je le faisais déjà mais comme je voulais avoir les infos en direct sur le site des changements dans une <section> ou un <aside> je rencontrais un problème avec les cookies mais c'est bon maintenant avec le header("location:...) !

    Je verrais demain ou après demain avec mapage.php?o=i$cs (par ex) et une vérif avec un $get[o=i$cs] pour ne pas avoir à recharger tous les éléments html du DOM

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 238
    Points : 95
    Points
    95
    Par défaut
    A propos de header.
    J'arrive à rediriger vers n'importe quelle page page comme ceci
    //header ("Location:index.php?home=entree"); /* Redirection du navigateur */

    Mais jamais revenir à la racine du site !!!
    //header("Location:/index.php"); /* Redirection du navigateur */
    Je précise que je suis en localhost et même si je fais :
    //header("Location:/monsite/") /* Redirection du navigateur */
    //header("Location:/monsite") /* Redirection du navigateur */
    //header("Location:/monsite/index.php"); /* Redirection du navigateur */
    //header("Location:http://localhost/monsite/index.php");/* Redirection du navigateur */
    Y'a rien à faire là rien ne fonctionne ! J"ai bien lu la page http://php.net/manual/fr/function.header.php mais j'ai du loupé un chapitre une notion !
    Je fais bien attention à pas de blanc et d'html avant aussi mais rien à faire :
    La page n’est pas redirigée correctement
    Firefox a détecté que le serveur redirige la demande pour cette adresse d’une manière qui n’aboutira pas.
    La cause de ce problème peut être la désactivation ou le refus des cookies.

    Merci de m'aider

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 238
    Points : 95
    Points
    95
    Par défaut
    Bon désolé le dernier message j'imagine qu'il n'est pas très lisible !
    Alors j'ai encore voulu faire plus simple à mes yeux avec un location.reload() et finalement :

    //window.location.reload(true);//fonctionne avec confirmation du navigateur
    window.location=window.location;//fonctionne sans confirmation

    C'est résolu !
    A part que je me suis rendu compte après que la structure du site n'est pas super (obligé de redondance et récurrence de variables et conditions donc y"a quoi faire des fonctions et pour les fonctions qui reviennent aussi par redondance revoir la structure ou pareils regrouper des fonctions )

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

Discussions similaires

  1. [Tableaux] Include et affichage non terminé
    Par syl2095 dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2008, 21h40
  2. Affichages non voulu dans l'afficage des JSP
    Par Mathieu.J dans le forum JDeveloper
    Réponses: 1
    Dernier message: 18/06/2007, 14h43
  3. [Cookies] affichage non desiré de PHPSESSID
    Par nicerico dans le forum Langage
    Réponses: 7
    Dernier message: 01/04/2007, 08h35
  4. Affichage non correct d'une image
    Par AnonCoder dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2006, 13h51
  5. Bug d'affichage non identifié. . .
    Par TheReturnOfMuton dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 21/06/2006, 20h25

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