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 :

positionner un cookie après avoir fait des affichages


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut positionner un cookie après avoir fait des affichages
    Bonjour,

    j'essaie de trouver une astuce pour faire un truc normalement impossible.
    Je m'y prends comme ça :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
     
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <title>cookie</title>
     
     
    </head>
    <body>
     
    <a href="cookie.php">envoyer un cookie</a><br>
    Valeur du cookie : <?php echo $_cookie['cookie']."<br>"; ?>
    </body>
    </html>
    et cookie.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    setcookie("cookie",'Valeur de test');
    ?>
    Mon idée étant, que quand j'aurai à positionner un cookie, je mets ça dans un fichier séparé, et je l'inclue via une iframe. Mais ça ne marche pas (la valeur affichée reste vide) : est-ce que ça pourrait marcher ?
    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
    C'est $_COOKIE
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    effectivement, ça marche mieux...
    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

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    J'ai décoché "résolu", car avec un nouvel essai, nouvel échec (pas de cookie). Maintenant, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="cookie.php" method="post">
     nom du cookie :<input name="cookie" type="text"><br>
     <input type="submit">
    </form>
    Valeur du cookie : <?php echo $_COOKIE['cookie']."<br>"; ?>
    et l'action est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    $cookie=$_POST['cookie'];
    setcookie($cookie,'Valeur de test2');
    ?>
    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
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    $cookie dans ton cas est le nom du cookie et non sa valeur.
    Donc si tu rentres autre chose que "cookie" dans ton input text il est normal de ne pas retrouver le cookie à l'affichage.

    PS : j'ai testé ton code et il est fonctionnel.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Ta réponse m'a mis un doute, mais j'ai regardé comment j'avais déjà fait, et c'était bien comme ça.
    Et toi, tu ferais comment ?
    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

  7. #7
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="cookie.php" method="post">
     nom du cookie :<input name="cookie" type="text"><br>
     <input type="submit">
    </form>
    <?php
    if( !empty($_GET['nom_cookie']) )
      echo "Valeur du cookie : {$_COOKIE[$_GET['nom_cookie']]}<br>"; 
    ?>
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    $cookie=$_POST['cookie'];
    setcookie($cookie,'Valeur de test2');
    header("Location:formulaire.php?nom_cookie={$_POST['cookie']}");
    ?>
    Mais je ne vois pas tellement le but de faire une telle chose.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Moi non plus, mais en voyant ta réponse, j'ai compris que ce n'est pas ce que je voulais faire (évidemment, ce n'est qu'un test). Cela dit, mon idée ne marche pas : en fait, je cherche un moyen de positionner un cookie après avoir fait un affichage (ce qui est théoriquement impossible). Ce que j'ai essayé est le chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    session_start();
    ?>
    <form action="cookie.php" method="post">
     nom du cookie :<input name="cookie" type="text"><br>
     <input type="submit">
    </form>
    <?php
    echo "valeur du cookie :".$_COOKIE['val_cookie']."<br>";
    ?>
    cookie.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    session_start();
    echo 'coucou';
    ?>
    <iframe src="set_cookie.php" frameborder=0></iframe>
    <a href="cookie2.php">retour</a>
    set_cookie.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    session_start();
    $cookie=$_POST['cookie'];
    setcookie(val_cookie,$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

  9. #9
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Si je comprends bien tu veux un affichage sans avoir à recharger la page ?
    Ou bien simplement ne pas perdre le contenu du formulaire ?

    Dans le premier cas si tu veux absolument passer par du PHP pour la création du cookie il faudra dans ce cas utiliser de l'Ajax pour du chargement dynamique.
    Ou bien on peut créer des cookies avec Javascript et dans ce cas tu ne postes plus le formulaire et donc plus de rechargement de page.

    Et si c'est juste une histoire de ne pas perdre le contenu du formulaire :
    Code php : 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
    <?php
    if( !empty($_POST['cookie']) )
    {
      $cookie=$_POST['cookie'];
      setcookie($cookie,'Valeur de test2');
    }
    ?>
    <form action="#" method="post">
     nom du cookie :<input name="cookie" type="text" value="<?php echo (!empty($cookie)) ? $cookie : ""; ?>"><br>
     <input type="submit">
    </form>
    <?php
      echo "Valeur du cookie : ";
      echo (isSet($_COOKIE[$cookie])) ? $_COOKIE[$cookie] : "";
      echo "<br>"; 
    ?>

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Si je comprends bien tu veux un affichage sans avoir à recharger la page ?
    Je ne suis pas sûr de me faire comprendre, car ce n'est ni l'un ni l'autre : mon but est de pouvoir affecter une valeur à un cookie après avoir fait un affichage (théoriquement impossible, vu qu'un cookie est un en-tête et que http interdit l'envoi d'un en-tête après, par exemple, un affichage). Et le formulaire ne sert que les besoins du test : pouvoir affecter la valeur du cookie dynamiquement. (sans retransférer)
    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

  11. #11
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Oui mais quel est l'intérêt de positionner un cookie après l'affichage ?
    On peut toujours séparer le code de l'affichage donc...
    Je pense que faudrait remonter à la source du conflit là...

    On affiche en fonction d'un traitement, donc on sait à l'avance ce que l'on va afficher, donc on peut avant l'affichage affecter le cookie.
    De plus l'affectation du cookie est un traitement donc on boucle encore une fois là...

    Si tu nous donnais un exemple pratique de ce que tu nécessites de faire on pourrait peut être t'aider... Car là à par te dire que tu veux casser une technologie...

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Suppose qu'un site est affiché (donc affichage), que l'utilisateur fait certaines actions (des choix) et que ça doit être mémorisé pour sa prochaine visite sur le site : c'est ça le but.
    Et pour être plus précis, sachant qu'il s'agit d'un site qui est visité par des mal-voyants, je vais mettre des boutons qui permettent de changer la taille des caractères, et ce réglage doit être mémorisé (ça ne serait pas confortable de devoir le refaire à chaque fois). Et si l'idée du cookie ne marche pas, j'en ai une autre : mettre cette info dans une base MySQL...
    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

  13. #13
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Et donc ? Je ne vois pas où est le souci avec cette problématique.
    On en revient toujours à un modèle où le traitement peut être fait avant l'affichage.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    le traitement peut être fait avant l'affichage
    Non, car il faut afficher au moins la page d'accueil, pour que l'utilisateur puisse faire un choix (qui doit être mémorisé).
    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

  15. #15
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    1) Affichage page d'accueil
    2) clic sur bouton redirigeant vers page de traitement
    3) page de traitement enregistrant le cookie
    4) redirection vers la page d'accueil
    5) récupération des cookies et affichage en conséquence

    Je ne vois pas où est le problème... C'est un cheminement tout ce qu'il y a de plus normal !

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    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 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Tu as parfaitement raison et je voyais un problème là où il n'y en a pas...
    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

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/07/2009, 13h51
  2. Réponses: 3
    Dernier message: 10/10/2007, 12h43
  3. Réponses: 2
    Dernier message: 07/03/2007, 15h09
  4. Réponses: 1
    Dernier message: 15/06/2006, 18h01
  5. Réponses: 4
    Dernier message: 25/04/2006, 16h14

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