Comment authentifier en php

stephane_mc2004 Messages postés 807 Statut Membre -  
stephane_mc2004 Messages postés 807 Statut Membre -
Bonjour,
jai un gros pb :

Jai une page login.html, qui contient le formulaire de demande de compte et mot de passe. l'action du formulaire est login/index.php

Dans l'index.php, on me signale une erreur, voici mon code :


<?php
/*Copyright MasterClub--2008 */
if (isset($_POST['compte']) && isset($_POST['mdpasse']) ) 
{
/*On considere que le user a lancé ses coordonnées___
on verifie si sa appartient a la bbdonnée
*/
$compte=$_POST['compte'];
$mdpasse=$_POST['mdpasse']

//Connexion à la base
mysql_connect("localhost","root","****");
mysql_select_db("users");

$reponse = mysql_query("SELECT * FROM mytable"); // Requête SQL
//////////////////////////////
while ($donnees = mysql_fetch_array($reponse) )

{
	if ($donnees['compte']!= $compte && $donnees['mdpasse']!= $mdpasse) { echo "erreur"; }
        else { echo "bienvenue" ; }
	break;
}

// on ferme la connexion mysql
mysql_close();
?>


Merci
Configuration: Windows XP
Firefox 3.0.3

4 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonsoir,

    if ($donnees['compte']!= $compte && $donnees['mdpasse']!= $mdpasse) { echo "erreur"; }


    dans un test négatif (!=) il faut mettre OU au lieu de AND (c'est à dire || au lieu de &&)

    	if ($donnees['compte']!= $compte || $donnees['mdpasse']!= $mdpasse) { echo "erreur"; }
    


    une autre solution:

    $reponse = mysql_query("SELECT * FROM mytable WHERE compte='".$compte."' AND mdpasse='".$mdpasse."'"); // Requête SQL
    if(mysql_num_rows($reponse)>0){// si un enregistrement correspond
    	echo "bienvenue";
    }else{
    	echo "erreur" ; 
           exit();
    }
    
    
    0
  2. djflexlive Messages postés 577 Statut Membre 95
     
    Vaudrait mieux pas rajouter des addslashes également pour éviter quelques tentatives simple de hacking ?

    $compte=addslashes($_POST['compte']);

    ?
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      le mieux c'est encore d'appliquer une Regex pour verifier que ce qu'on reçoit correspond bien à ce qu'on attend

      pour le compte par exemple des lettres et des chiffres [a-zA-Z0-9] et combien mini et maxi

      pour le mail il existe des Regex toutes faites

      www.siteduzero.com pour plus de détails et mise en œuvre

      @lain
      0
  3. djflexlive Messages postés 577 Statut Membre 95
     
    Regex , j'aime pas mais pratique dans certains cas ...

    Sinon siteduzero +1 !
    0
  4. stephane_mc2004 Messages postés 807 Statut Membre 96
     
    Merci pour vos reponses ! Sinon, lorsque je teste en local le code, rien ne s'affiche sur la page, au lieu que sa affiche "bienvenue" ou "erreur".

    je travaille avec Wamp Server
    Merci encore
    0