Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur lié aux cookies

Sujet résolu
    20 janvier 2020 à 23:38:48

    Bonjour à tous ! :)

    J'ai créé une page de connexion basique.

    J'affiche comme identifiant le cookie 'identifiant' dans la barre où le user rentre son identifiant.

    Je pense que le problème survient au moment où le user n'a pas de cookie (qu'il obtient après avoir rentré ses id pour la 1ere fois).

    On obtient alors cette erreur:

    Notice: Undefined index: identifiant in C:\wamp64\www\tests\index.php on line 19 Call Stack #TimeMemoryFunctionLocation 10.0009406936{main}( )...\index.php:0 " autofocus required/>

    Je pensais avoir palié au problème via le if au début de mon code mais rien n'y fait.

    <?php 
    if(isset($_COOKIE['identifiant'])){/*L'erreur vient du fait que la value de l'identifiant est un cookie. 
        Or si le user n'a pas de cookie on a rien à afficher.*/
            setcookie('identifiant','',time()+365*24*3600,null,null,false,true);
        }?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Ma page web</title>
            <link rel="stylesheet" href="fichiercss.css"/>
        </head>
        <body>
    
            <p>Aujourd'hui nous sommes le <?php
            date_default_timezone_set('Europe/Paris');
            echo date('d/m/Y H:i:s');
            ?></p>
            <form method="post", action="bonjour.php">
                <div id="connexion">
                    <p id="sign">Se connecter</p>
                    <div id="borderid"></div>
                    <label for="identifiant" id="identifiant">Identifiant:</label>
                    <div id="imgid"></div>
                    <input type=text name="identifiantbutton" id="identifiantbutton" value="$_COOKIE['identifiant']"?> autofocus required/>
                     <br/>
                    <div id="bordermdp"></div>
                    <label for="mdp" id="mdp">Mot de passe: </label>   
                    <div id="imgcadenas"></div> 
                    <input type=password name="mdpbutton" id="mdpbutton" required/>
                    <br/>
                    <a href="" id="mdpOublie"/>Mot de passe oublié ?</a>
                    <br/>
                    <input type=submit name="Seconnecter" id="seConnecterButton" value="Se connecter !"/>
                    <div id="creationCompte">Créer un compte</div>
                </div>
             </form>   
        </body>
    </html>

    -
    Edité par Egée 20 janvier 2020 à 23:43:20

    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2020 à 6:17:56

      Salut,

      Regarde dans: https://www.php.net/manual/fr/function.setcookie.php

      Section "Erreurs communes"

      "Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire. Le délai d'expiration est défini en utilisant le paramètre expires. Une façon simple de vérifier le positionnement du cookie est d'utiliser print_r($_COOKIE);. "

      Bonne journée

      • Partager sur Facebook
      • Partager sur Twitter
        22 janvier 2020 à 23:25:50

        Salut ! :)

        Tout d'abord merci de ta réponse :)

        De ce que je comprends, tu me dis que le cookie est enregistré lors du 1er chargement de la page mais que pour que l'on puisse l'utiliser, il faut recharger la page.

        Et là dessus je comprends.

        En revanche, ce que je ne comprends pas, c'est comment me débrouiller pour que sur mon site si l'utilisateur a un cookie "identifiant" il affiche l'identifiant du user et sinon rien.

        Car pour moi un simple if devrait suffire. Mais du coup si j'ai bien comprit, le setcookie dans mon if ne prend effet qu'au prochain rechargement de la page ? Mais pourquoi même après un F5 cela ne se solutionne pas dans ce cas ?

        Très bonne soirée ! :)

        Edit:

        J'ai résolu tout seul mon problème ! :)

        -
        Edité par Egée 23 janvier 2020 à 19:20:48

        • Partager sur Facebook
        • Partager sur Twitter

        Erreur lié aux cookies

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown