j'ai créé une page de controle de mot de passe en fonction du login sur mon site mais y'a un probleme la requete ne semble me retourner aucun resultat.
Je précise que j'ai un enregistrement dans ma base de données spécialement fait pour tester le login et mot de passe
Le login testé est 'testentreprise' et le mot de passe est 'motdepasse'
ils sont bien dans la base de données, j'ai pas fais de fautes je précise !
J'ai vérifié en faisant des 'echo' a chaque niveau de la page et tout semble normal sauf 'echo $req;' qui me renvoie 'Resource id #3'.
Voila le code qui pose probleme...
Code :
// On va chercher le mot de passe attribué à ce login
$sql = "SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = '".addslashes($id)."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0)
{ $data = mysql_fetch_assoc($req);
// On vérifie que son mot de passe est correct
if ($mdp == $data['mdpEnt'])
{
$loginOK = true;
}}
Le serveur ne passe pas dans le premier 'if' ce qui voudrait dire que 'mysql_num_rows($req)' n'est pas superieur a 0 mais il devrait trouver un enregistrement !
J'attend votre aide avec impatience svp, je vous remercie d'avance !
Message édité par Goras le 11-03-2005 à 00:40:04
---------------
L'informatique c'est chiant mais moin que les hommes quand même !
J'ai mis ton code mais le probleme c'est que la, '$data' ne vaut rien encore donc ca peut pas fonctionner !
Alors je met quoi dans '$data' et où ?
Je donne tout le code de la page :
Code :
<?
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on séléctionne la base
mysql_select_db('gestappeloffre',$db);
// On démarre la session
session_start();
$loginOK = false;
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['id'])) && (!empty($_POST['mdp'])) )
{
extract($_POST);
// On va chercher le mot de passe attribué à ce login
$sql = "SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = '".addslashes($id)."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// On vérifie que l'utilisateur existe bien
if ($data = mysql_fetch_array($req))
{
// On vérifie que son mot de passe est correct
if ($mdp == $data['mdpEnt'])
{
$loginOK = true;
}
}
}
// Si le login a été validé on met les données en sessions
if ($loginOK)
{
$_SESSION['id'] = $data['idEnt'];
header("location: index.php" );
}
else
{
header ("location: index.php?erreur=1" );
}
// on ferme la connexion à mysql
mysql_close();
?>
Je reprécise que c'est la requête qui semble ne rien retourner et que 'echo $req;' me renvoie toujours 'Resource id #3', je l'ai mis juste apres le '$req = ...'
---------------
L'informatique c'est chiant mais moin que les hommes quand même !
ca retourne rien print_r($data) puisque toute facon y'a rien dans data jt'ai dis tu m'a fais remplacé mon code et maintenant $data tu lui donne plu de valeur nul part...
c'est un probleme de SQL chui quasi sur..
la dedans mais je vois pas l'erreur
Code :
// On va chercher le mot de passe attribué à ce login
$sql = "SELECT idEnt, mdpEnt FROM entreprise WHERE idEnt = '".addslashes($id)."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
j'en ai marre !!
---------------
L'informatique c'est chiant mais moin que les hommes quand même !