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 :

Boutton supprimer cookie


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de Heavy Metal Hero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2007
    Messages : 152
    Points : 333
    Points
    333
    Billets dans le blog
    13
    Par défaut Boutton supprimer cookie
    Bonjour,

    J'ai fait une page php qui demande à l'utilisateur un pseudo qui est envoyé comme cookie via un formulaire. La page affiche ensuite "Bonjour $pseudo", et un bouton "supprimer cookie" apparait. Je voudrais supprimer le cookie avec ce bouton et réafficher le formulaire, mais quand je clique, rien ne se passe. J'ai bien pris connaissance des différentes syntaxes pour supprimer un cookie en php, mais je pense que j'agence mal mon code :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    $expire = 365 * 24 * 3600;
    if (isset($_GET["pseudoSuppr"])) {
        setcookie("pseudo");
    }
    if (!empty($_POST)) {
        setcookie("pseudo", $_POST["pseudo"], time() + $expire);
        header("Location:index.php");
    }
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <?php
     
    //Ici s'affiche la page quand il y a un cookie
     
            if (!empty($_COOKIE["pseudo"])) {
                echo "Bonjour " . $_COOKIE["pseudo"];
                ?>
                <form method="get" action="index.php"> 
                    <a href='index.php?true="$pseudoSuppr"'>
                        <input type="button"
                               value = "Supprimer cookie"/>
                    </a>
                </form>
                <?php
            } else {
                ?>
    //Le formulaire quand il n'ya pas de cookie détecté : 
     
                <form method="post" action="index.php">
                    <label for="age">Votre pseudo :</label>
                    <input type="text" name="pseudo" id="pseudo" />
                    <br />
                    <input type="submit"/>
                </form>
                <?php
            }
            ?>
     
        </body>
    </html>
    Auriez-vous une idée ?

    Merci d'avance.

  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
    $_COOKIE est une image des cookies tels qu'ils sont au chargement de la page, les créations (ou modifications) ne sont donc visibles qu'au prochain chargement.
    Il faut donc supprimer manuellement $_COOKIE["pseudo"] si tu veux te baser dessus dans le script courant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_GET["pseudoSuppr"])) {
        setcookie("pseudo");
        unset($_COOKIE["pseudo"]);
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Avatar de Heavy Metal Hero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2007
    Messages : 152
    Points : 333
    Points
    333
    Billets dans le blog
    13
    Par défaut
    Ca n'a pas changé mon problème, mais j'ai trouvé la solution. J'ai remplacé method="post" dans le formulaire par method="get", ainsi que les $_POST par des $_GET. En effet, je crois que le problème venait de "if (!empty($_POST))". A mon avis $_POST n'était jamais vide, et du coup le cookie se recréait après sa suppression.

    Merci de votre aide

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    code corrigé, voir les remarques

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
    $expire = 365 * 24 * 3600;
    if (isset($_GET["pseudoSuppr"])) {
        //pour supprimer du browser le cookie, lui donner un expire dans le passé ici maintenant - 1h
        setcookie ("pseudo", $_COOKIE["pseudo"], time() - 3600); 
        unset($_COOKIE["pseudo"]);//le suprimer de la variable  $_COOKIE sinon il n'est supprimé qu'au prochaine rechargement de page
    }
    if (!empty($_POST)) {
        setcookie("pseudo", $_POST["pseudo"], time() + $expire);
        header("Location:index.php");
    }
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <?php
     
    //Ici s'affiche la page quand il y a un cookie
     
            if (!empty($_COOKIE["pseudo"])) {
                echo "Bonjour " . $_COOKIE["pseudo"];
                ?>
                <form method="get" action="index.php"> 
                         //le a href=... n'est pas utile , remplacé par un champ caché avec le nom pseudoSuppr , la valeur n'est pas importante
    	            <input type="hidden" name="pseudoSuppr" value="true"> 
                        <input type="submit" value = "Supprimer cookie"/> //le button type submit envois les formulaires (remplace le href)
                </form>
                <?php
            } else {
     
    //Le formulaire quand il n'ya pas de cookie détecté : //le commentaire doit être entre les balises <?php ... ?>
    ?> 
                <form method="post" action="index.php">
                    <label for="age">Votre pseudo :</label>
                    <input type="text" name="pseudo" id="pseudo" />
                    <br />
                    <input type="submit"/>
                </form>
                <?php
            }
            ?>
     
        </body>
    </html>
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/06/2015, 16h01
  2. Réponses: 5
    Dernier message: 27/05/2011, 19h18
  3. Supprimer cookies et fichiers temporaires d'IE
    Par aus3004 dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/02/2011, 18h24
  4. [Cookies] Supprimer COOKIE ?
    Par Kenshin86 dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2007, 11h54
  5. problème pour supprimer un cookie
    Par vbcasimir dans le forum Web
    Réponses: 4
    Dernier message: 29/11/2005, 12h01

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