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 :

setter un cookie n'importe quand


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut setter un cookie n'importe quand
    Bonsoir,

    je sais bien qu'il n'est pas possible d'appeler la fonction setcookie après avoir émis des headers. Aussi, ai-je essayé une "bidouille", mais qui ne semble pas marcher ; peut-on m'expliquer pourquoi ça ne marche pas ?

    Code principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...
    <iframe src="../script_laurents/setcookie_connecte.php" width="0" height="0" frameborder=0></iframe>
    setcookie_connecte.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    setcookie("connecte", "true", time()+3600*24*365*100); 
    ?>

    Pour vérifier si ça marchait, j'ai mis ce code dans une page :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script>alert('COOKIE CONNECTE=".$_COOKIE['connecte']."')</script>";
    et apparemment, pas de cookie...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  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
    est-ce que ton setcookie_connect.php fonctionne ?
    A priori non, ton temps dépasse 2038

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie("connecte", "true", 2147483647);
    Sinon ce que tu fais avec ton iframe, ce n'est pas propre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Laurent... es-tu absolument certain qu'il soit utile que ton cookie expire dans... 100 ans !

    Quant à ta méthode pour affecter un cookie via une iframe... je préfère m'abstenir de la commenter.
    Mais bon... j'imagine que tu es obligé d'attendre le milieu de ta page pour savoir si quelqu'un est connecté ou non...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Faire expirer le cookie dans 100 ans, c'était pour ne pas être embêté avec ça.
    Sinon, effectivement, la mise à 1 du cookie est conditionnée par le code de la page et je ne sais pas au début si je vais le setter ou pas (d'où l'idée scabreuse de l'iframe) ; mais comment faire autrement ? Et 2038, ça signifie quoi ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  5. #5
    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
    2038 est l'année maximale gerée.
    Sinon, effectivement, la mise à 1 du cookie est conditionnée par le code de la page
    Par le code PHP mais pas par ce que tu affiches.
    Soit tu sépares bien ton code et ton affichage, soit tu utilises les temporisations (fonctions "ob")
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Vu que la page qui effectue les tests PHP est non entièrement modifiable (et qu'il m'est impossible de buffériser la sortie pour retarder l'affichage), j'aurais souhaiter exporter le setcookie dans un autre fichier, et du coup le faire immédiatement, avant tout affichage ; c'est possible ça ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. ordre important quand on construit une requête ?!
    Par lennelei dans le forum JDBC
    Réponses: 2
    Dernier message: 23/09/2010, 09h43
  2. Réponses: 2
    Dernier message: 17/11/2009, 09h17
  3. CookieOverflow - Cookies trop importants
    Par gvdmoort dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 16/04/2009, 18h55
  4. Réponses: 2
    Dernier message: 08/02/2007, 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