Script d'identification

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par user2home, 16 Juin 2011.

  1. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Bonjour à tous, j'ai un petit soucis sur un formulaire d'identification, quelqu'un peut il m'aider à en trouver l'origine, je sèche complètement.

    Le script me dit que les logins sont incorrects, j'ai bien ma base de donnée avec ma table login et mon MDP en mD5 dedans.. :roll:

    Merci par avance


    Code:
    <?php
    $connexion = mysql_connect("localhost","root","");
    if (!$connexion)
    {
    die('Connexion impossible : ' . mysql_error());
    }
    mysql_select_db("saslink", $connexion);
    $loginpost = mysql_real_escape_string($_POST['login']);
    $pwdpost=mysql_real_escape_string(md5($_POST['pwd']));
    $sql = "SELECT id, login, mdp FROM account WHERE login='" . $loginpost . "' AND mdp='" . $pwdpost . "';";
    $resultat = mysql_query($sql);
    $ligne = mysql_fetch_array($resultat, MYSQL_ASSOC);
    $login_db = $ligne['login'];
    $pwd_db = $ligne['mdp'];
    
    	  
        if (isset($_POST['login']) && isset($_POST['pwd'])) { 
         
              if ($login_db == $loginpost && $pwd_db == md5($pwdpost)) { 
                    session_start (); 
                    $_SESSION['login'] = $_POST['login']; 
                    $_SESSION['pwd'] = $_POST['pwd'];
    				$_SESSION['id']	= $ligne['id'];
                    $_SESSION['auth'] = "ok";
    		header("Location: index.php?page=raremagic");
              } 
              else { 
                 echo 'Le mot de pass ou le Nom d\'utilisateur est incorrect';
              }  
        }  
        else { 
              echo 'Veuillez completez tout le formulaire';  
        }  
        ?> 
     
  2. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    707
    J'aime reçus:
    0
    Tu as compris ce que fais le code ? Ça n'en donne pas l'impression en le voyant :/

    La requête elle même suffit à vérifier le login et mot de passe, pour avoir en plus une condition ?

    (il faudrait mettre
    PHP:
     quand tu colles du PHP dans le forum ;) )
     
  3. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Je l'ai écrite donc oui =)

    Je n'ai pas compris la fin de ton message, avec la requête plus je vérifie l'enssemble mais je dois avoir un soucis, car il me retourne toujours une erreur d'identifiant
     
  4. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    Blount t'indique que ton select vérifie déjà le mot de passe mais tu fais quand même un test après.

    Normalement tu devrais rechercher dans la base le mot de passe à partir du login. Si le login n'existe pas tu l'indiques et sinon tu vérifies que le mot de passe est correct.
     
  5. bgdc
    bgdc WRInaute impliqué
    Inscrit:
    23 Mai 2005
    Messages:
    546
    J'aime reçus:
    0
    Si le mot passe est sauvegardé en MD5 dans ta base (ce que j’espère), ta requete devrait plutôt ressembler à un truc comme ça :

    PHP:
    <span class="syntaxdefault">$sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"SELECT id, login, mdp FROM account WHERE login='"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $loginpost </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"' AND mdp='"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pwdpost</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"';"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span>
     
  6. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    707
    J'aime reçus:
    0
    Il applique déjà la fonction md5() à la ligne du dessus.
    De plus, on ne met pas les « ; » dans les requêtes.

    Mais il y a plein de truc qui ne vont pas dans son code.

    Par exemple, il fait un « isset » sur les $_POST pour vérifier si les variables existes alors qu'il les utilise déjà plus haut …
    Il fait un md5 sur $_POST['pwd'] pour mettre le résultat $pwdpost et plus bas, il refait un md5 dessus pour le comparer avec la valeur de la base de données.

    Personnellement, quand je vois un code de ce genre, je me dis qu'il n'y a pas de réflexion derrière. J'ai l'impression qu'il met des fonctions ici et là et « prie » pour que ça passe sans savoir pourquoi.

    Je peux pondre un code tout corrigé, mais ça apporterait quoi ? En programmation, il faut une certaine logique, et se dire « on vérifie l'existence des variables avant de les utiliser » en est la base.

    Désolé si je peux paraître un peu brut dans ce que j'écris mais bon, c'est la réalité des choses.
     
  7. bgdc
    bgdc WRInaute impliqué
    Inscrit:
    23 Mai 2005
    Messages:
    546
    J'aime reçus:
    0
    Bien vu, je retourne faire la sieste :)
     
  8. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Je ne l'ai pas demandé :wink:
    Ya pas de soucis je vais refaire le code histoire d'être "logique" :wink:
     
  9. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Me revoici avec le code "corrigé", j'ai en compte tes notes si tu trouves encore des incohérences je ne comprend pas je me suis vraiment penché sur le sujet :wink:

    Mais j'ai toujours un soucis avec toujours un "'Le mot de pass ou le Nom d\'utilisateur est incorrect" à chaque tentative de connexion. :?

    PHP:
    <span class="syntaxhtml">&nbsp;&nbsp;&nbsp;&nbsp;<span class="syntaxdefault"><?php<br />$connexion&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"root"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">);<br /><br />if&nbsp;(!</span><span class="syntaxdefault">$connexion</span><span class="syntaxkeyword">)<br />{<br />die(</span><span class="syntaxstring">'Connexion&nbsp;impossible&nbsp;:&nbsp;'&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxdefault">mysql_error</span><span class="syntaxkeyword">());<br />}<br /><br /></span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"saslink"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$connexion</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">])&nbsp;&&&nbsp;isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]))&nbsp;{&nbsp;</span><span class="syntaxcomment">//&nbsp;test&nbsp;d'existence&nbsp;des&nbsp;variables<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span class="syntaxdefault">$loginpost&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]);</span><span class="syntaxcomment">//verifie&nbsp;l'utilisation&nbsp;de&nbsp;caracteres&nbsp;speciaux<br /></span><span class="syntaxdefault">$pwdpost</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]));</span><span class="syntaxcomment">//je&nbsp;passe&nbsp;le&nbsp;$_POST&nbsp;en&nbsp;md5&nbsp;pour&nbsp;le&nbsp;comparer&nbsp;au&nbsp;celui&nbsp;de&nbsp;la&nbsp;DB&nbsp;qui&nbsp;en&nbsp;md5<br /><br /></span><span class="syntaxdefault">$sql&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"SELECT&nbsp;id,&nbsp;login,&nbsp;mdp&nbsp;FROM&nbsp;account&nbsp;WHERE&nbsp;login='"&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxdefault">$loginpost&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">"'&nbsp;AND&nbsp;mdp='"&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxdefault">$pwdpost&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">"'"</span><span class="syntaxkeyword">;&nbsp;</span><span class="syntaxcomment">//&nbsp;je&nbsp;selectionne&nbsp;mes&nbsp;identifiant&nbsp;dans&nbsp;ma&nbsp;DB<br /></span><span class="syntaxdefault">$resultat&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$ligne&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mysql_fetch_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$resultat</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">MYSQL_ASSOC</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$login_db&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">];</span><span class="syntaxcomment">//je&nbsp;sors&nbsp;le&nbsp;login<br /></span><span class="syntaxdefault">$pwd_db&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'mdp'</span><span class="syntaxkeyword">];</span><span class="syntaxcomment">//je&nbsp;sors&nbsp;le&nbsp;mdp<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">if&nbsp;(</span><span class="syntaxdefault">$login_db&nbsp;</span><span class="syntaxkeyword">==&nbsp;</span><span class="syntaxdefault">$loginpost&nbsp;</span><span class="syntaxkeyword">&&&nbsp;</span><span class="syntaxdefault">$pwd_db&nbsp;</span><span class="syntaxkeyword">==&nbsp;</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pwdpost</span><span class="syntaxkeyword">))&nbsp;{&nbsp;</span><span class="syntaxcomment">//je&nbsp;compare&nbsp;mes&nbsp;logs&nbsp;récuperer&nbsp;en&nbsp;$_POST&nbsp;et&nbsp;ceux&nbsp;de&nbsp;la&nbsp;DB<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">session_start&nbsp;</span><span class="syntaxkeyword">();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]&nbsp;=&nbsp;</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">];&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]&nbsp;=&nbsp;</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;</span><span class="syntaxdefault">$ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'auth'</span><span class="syntaxkeyword">]&nbsp;=&nbsp;</span><span class="syntaxstring">"ok"</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location:&nbsp;index.php?page=raremagic"</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'Le&nbsp;mot&nbsp;de&nbsp;pass&nbsp;ou&nbsp;le&nbsp;Nom&nbsp;d\'utilisateur&nbsp;est&nbsp;incorrect'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="syntaxstring">'Veuillez&nbsp;completez&nbsp;tout&nbsp;le&nbsp;formulaire'</span><span class="syntaxkeyword">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">?></span>&nbsp;<br /></span>
     
  10. bgdc
    bgdc WRInaute impliqué
    Inscrit:
    23 Mai 2005
    Messages:
    546
    J'aime reçus:
    0
    Allez je vais retentez un truc.

    Ce test pourquoi y'a encore une fois le MD5 puisque tu l'a deja fait plus haut ?

    PHP:
    <span class="syntaxdefault">$pwd_db </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pwdpost</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span>
     
  11. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    707
    J'aime reçus:
    0
    Bon, c'est déjà mieux dans le bon ordre.

    Premièrement bgdc a raison sur la double utilisation de md5 (tu hashes le hash …). Mais je l'avais déjà signalé dans mon précédent poste.

    Sinon, pour revenir sur la logique. Tu fais ta requête SQL de tel sorte qu'elle récupère l'id, le login et le mdp de l'utilisant ayant pour login « $loginpost » et le mot de passe « $pwdpost ».
    Si ta requête retourne un résultat, alors c'est que la personne a entrée les bons identifiants. Tu le sais déjà avec la requête !!

    Tu dois juste vérifier que la requête retourne un résultat, et pour ce faire, tu regardes si « mysql_fetch_array » retourne « false ».

    En claire :
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br /><br />$connexion </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"root"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$connexion</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Connexion impossible : '</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> mysql_error</span><span class="syntaxkeyword">());<br />}<br /><br /></span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"saslink"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $connexion</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// test d'existence des variables<br /><br /></span><span class="syntaxdefault">    $loginpost </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]);</span><span class="syntaxcomment">//verifie l'utilisation de caracteres speciaux<br /></span><span class="syntaxdefault">    $pwdpost</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]));</span><span class="syntaxcomment">//je passe le $_POST en md5 pour le comparer au celui de la DB qui en md5<br /><br /></span><span class="syntaxdefault">    $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"SELECT id, login, mdp FROM account WHERE login='"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $loginpost </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"' AND mdp='"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $pwdpost </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"'"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// je selectionne mes identifiant dans ma DB<br /></span><span class="syntaxdefault">    $resultat </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $ligne </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_fetch_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$resultat</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> MYSQL_ASSOC</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    $login_db </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">];</span><span class="syntaxcomment">//je sors le login<br /></span><span class="syntaxdefault">    $pwd_db </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'mdp'</span><span class="syntaxkeyword">];</span><span class="syntaxcomment">//je sors le mdp<br /></span><span class="syntaxdefault">     <br />    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ligne </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        session_start </span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault">    </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'auth'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"ok"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> <br />        header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location: index.php?page=raremagic"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">'Le mot de pass ou le Nom d\'utilisateur est incorrect'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault">else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">'Veuillez completez tout le formulaire'</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault"> </span>
    Sinon, pour « $_SESSION['auth'] = "ok"; », penses tu que ce soit utile ? Tu veux veux savoir si l'utilisateur est connecté, il suffit de tester l'existence de $_SESSION['id'] (par exemple).
     
  12. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Résolu, je mettais deux fois la fonction MD5, la fonction md5 dans le if était en trop. :wink:

    PHP:
    <span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$login_db </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $loginpost </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> $pwd_db </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pwdpost</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span>
     
  13. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    c'est plutôt :
    Code:
    ...
        if ($ligne !== false) {
            $login_db = $ligne['login'];//je sors le login
            $pwd_db = $ligne['mdp'];//je sors le mdp
     ...
     
  14. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Et quel est l’intérêt de ceci ? :? Si ma requête est bonne ca sera toujours true ?
     
  15. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    $ligne['login'] n'a de valeur que si $ligne est différent de false. Avec le code donné par Blount au dessus on récupère la valeur avant le test d'existence ce qui n'est pas correct.
     
  16. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    707
    J'aime reçus:
    0
    Exacte.
    Et je dirais même plus : ça n'a aucun sens.

    Pourquoi assigner les valeurs à de nouvelles variables alors qu'il suffit d'exploiter $ligne ?

    Voici une version allégée :
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />session_start</span><span class="syntaxkeyword">();</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// je me préfère bien en haut<br /><br /></span><span class="syntaxdefault">$connexion </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"root"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$connexion</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Connexion impossible : '</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> mysql_error</span><span class="syntaxkeyword">());<br />}<br /></span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"saslink"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $connexion</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $resultat </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"SELECT id, login, mdp FROM account WHERE<br />            login = '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">mysql_real_escape_string</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]).</span><span class="syntaxstring">"'<br />        AND mdp = '"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">md5</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]).</span><span class="syntaxdefault"> </span><span class="syntaxstring">"'"</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// vérification login et mot de passe existant.<br /></span><span class="syntaxdefault">    <br />    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">false </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> $ligne </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_fetch_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$resultat</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> MYSQL_ASSOC</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// une entrée existe ?<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pwd'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $ligne</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">        header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Location: index.php?page=raremagic"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">'Le mot de pass ou le Nom d\'utilisateur est incorrect'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">'Veuillez completez tout le formulaire'</span><span class="syntaxkeyword">;<br />}<br />&nbsp;</span><span class="syntaxdefault"></span>
    J'enlève des variables inutiles ($sql, $_SESSION['auth'], etc.) avec quelques aménagements.
     
  17. user2home
    user2home WRInaute occasionnel
    Inscrit:
    19 Décembre 2007
    Messages:
    255
    J'aime reçus:
    0
    Bien compris merci à tout les deux :)
     
Chargement...
Similar Threads - Script identification Forum Date
Format milliers nombre en javascript Développement d'un site Web ou d'une appli mobile 5 Décembre 2019
Description sur Pinterest pas affichée Autres réseaux sociaux 15 Novembre 2019
WordPress Description de produits similaire Rédaction web et référencement 23 Octobre 2019
WordPress Annuaire avec fiche d'inscription différente par type d'inscrits Développement d'un site Web ou d'une appli mobile 7 Octobre 2019
Référencement d'un site full javascript (angular js) Référencement Google 10 Septembre 2019
Meta description Yoast Seo non reprise par Google Référencement Google 8 Septembre 2019
Balisage sémantique itemprop name / description multilingue Référencement Google 26 Juillet 2019
[Google shopping] Erreur "description" dans diagnostic du module "google merchant center pro" e-commerce 26 Juillet 2019
Problème de description dans les serps Problèmes de référencement spécifiques à vos sites 19 Juillet 2019
WordPress Affichage de l'auteur au lieu de la meta description Référencement Google 19 Juillet 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice