Requete sql / base de données / php

Résolu/Fermé
pierre - 16 août 2012 à 09:33
 pierre - 17 août 2012 à 11:37
Bonjour,


je souhaite creer un identifiant sur mon site internet,
j'en ai créé 2 dans la bdd pour l'instant,

quelqu'un peut me dire si ce code convient svp, si oui que mettre a la place des ???

merci

<html>
<body>

<?php

$serveur = "123.db.1and1.com";
$nom_base = "123";
$login = "123";
$pwd = "123";

// on se connecte à MySQL
$db = mysql_connect ($serveur,$login,$pwd) or die ('ERREUR '.mysql_error());

// on sélectionne la base
mysql_select_db($nom_base,$db);

//on recupere les variables de la page html
$user = $_POST['user'];
$passwd = $_POST['passwd'];

//requete sql
$sql = 'SELECT id,mdp FROM identifiants';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


// c'est ici que je bloque, comment dire si id et mdp de html correspond a id et mdp de la base alors on continu ?

if(($user=='????') && ($passwd=='????????'))
{
echo "bienvenue a toi";
echo $user;
//lien qui envoi vers la page 2

}

else
{
echo "identifiant et/ou mot de passe incorrect";
}

mysql_close();
?>
</html>


merci pour votre aide

2 réponses

Utilisateur anonyme
17 août 2012 à 09:42
Bonjour

Les valeurs de $serveur, $login, $pwd et $nom_base ont-elles bien été définies à l'intérieur de la fonction user_exist ?
2
twix_et_chocobon Messages postés 181 Date d'inscription mardi 24 juillet 2012 Statut Membre Dernière intervention 21 août 2012 665
17 août 2012 à 10:21
ah oui j'ai oublier de le marquer .. effectivement elle ne sont pas définies
0
ca marcheee!!!!!!!!

merci a vous 2 et merci twix pour ta patience!!!!!


merci peins de fois!!!!!
0
twix_et_chocobon Messages postés 181 Date d'inscription mardi 24 juillet 2012 Statut Membre Dernière intervention 21 août 2012 665
16 août 2012 à 09:45
bonjour,

il suffit de faire une requetes sql ou tu vas chercher le user et le mot de passe dans la base de données avec les données qu'a rentrer l'utilisateur,

si la requetes renvoie quelque chose, c'est que l'utilisateur et le mot de passe existe donc " bienvenue blablablaba"

si la requete ne renvoie rien c'est que le user et le mot de passe n'existe pas donc " identifiant iconnu "
1
twix_et_chocobon Messages postés 181 Date d'inscription mardi 24 juillet 2012 Statut Membre Dernière intervention 21 août 2012 665
16 août 2012 à 09:47
Tu fais une requete du style :

sql = " SELECT * FROM taTable WHERE user= '$User' AND mpd='$password' ";

bien sur avec les variables de ta table
0
merci pour ta reponse,

j'ai essayé mais comment savoir si la requete renvoie quelque chose ou non ?

j'ai essayé:

//requete sql
$sql = " SELECT * FROM identifiants WHERE id='$user' AND mdp='$passwd'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

if($req==false)
{
echo "requete invalide";
}
else
{
echo"requete valide";
}
mysql_close();
?>


ca met toujour requete valide, que lidentifiant ou mot de passe existe ou n'existe pas
0
twix_et_chocobon Messages postés 181 Date d'inscription mardi 24 juillet 2012 Statut Membre Dernière intervention 21 août 2012 665
16 août 2012 à 15:44
normal, tu ne peux tester directement la requete $req :

fait:

function user_exist($user; $passwd)
{
     // on se connecte à MySQL 
     $db = mysql_connect ($serveur,$login,$pwd) or die ('ERREUR '.mysql_error()); 

     // on sélectionne la base 
     mysql_select_db($nom_base,$db); 

    //requete sql 
    $sql = " SELECT * FROM identifiants WHERE id='$user' AND mdp='$passwd'"; 

   // on envoie la requête 
   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
   $nbresult = mysql_num_rows($result);
   return ($nbresult==1);

}

if (user_exist($user; $passwd))
{
     echo "requete invalide"; 
} 
else 
{ 
     echo"requete valide"; 
} 

mysql_close(); 
0
twix_et_chocobon Messages postés 181 Date d'inscription mardi 24 juillet 2012 Statut Membre Dernière intervention 21 août 2012 665
16 août 2012 à 15:45
$nbresult = mysql_num_rows($result);
==> erreur à ce niveau..

au lieu de result il faut que tu marque req
0
j'ai recopié le code,
il y avait une erreur au ; aux lignes:
function user_exist($user; $passwd)
et
if (user_exist($user; $passwd))

j'ai donc mis des virgules a la place,

j'obtiens lerreur:


Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /homepages/1/d427173272/htdocs/php/log.php on line 24
ERREUR Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)
0