Rechercher : dans
Par :

PB page AUTHENTIFICATION PHP/MySQL

Dernière réponse le 20 sep 2008 à 14:55:22 djibouteam, le 20 sep 2008 à 11:36:31 
 Signaler ce message aux modérateurs

Bonjour à tous et à toutes,
J'ai créé une page d'authentification en PHP pour accéder à une partie privée d'un site, mais voilà, que je mette un login et password valides ou non, la page de vérification me connecte... et là problème.
Ayant fait des echo dans mon code pour vérifier le passage des variables, je sais que cela ne vient pas des variables POST.
$result me renvoit bien un #ressource id4 ou quelque chose comme çà donc MySQL fait bien son boulot mais comme dit plus haut, il me connecte tout le temps meme avec des login et passords bidons...
Voici mon code, ci quelqu'un pouvait me dire ce qui ne va pas, çà fait trois soirs que je passe dessus, je modifie, je bidouille, mais rien ...

<?php
include ("../include/conn.php");

/* variables passées depuis la page de connection */
$vLogin =(isset($_POST["login"])) ? $_POST["login"] : "";
$vPwd =(isset($_POST["pwd"])) ? $_POST["pwd"] : "";

/*mettre cette partie en fonction php avec le dessus*/
$query = sprintf("SELECT id_user FROM `utilisateurs` WHERE login_user = '%s' and pwd_user='%s'",
mysql_real_escape_string($vLogin),
mysql_real_escape_string($vPwd));
echo $query;
$result = mysql_query($query);

If (!$result){
header("location:index.php");
}
else{
$row = mysql_fetch_row($result);
$_SESSION["id_user"]= $row[0];
header("location:../pages/gestion_admin.php");
}

mysql_close();
?>

Configuration: Windows XP
Firefox 3.0.1

1

bissdebrazza, le 20 sep 2008 à 12:58:23

Salut essai ça!

<?php
include ("../include/conn.php");

/* variables passées depuis la page de connection */
$vLogin =(isset($_POST["login"])) ? $_POST["login"] : "";
$vPwd =(isset($_POST["pwd"])) ? $_POST["pwd"] : "";

/*mettre cette partie en fonction php avec le dessus*/
$query = sprintf("SELECT id_user FROM `utilisateurs` WHERE login_user = '$vLogin' and pwd_user='$vPwd'",
mysql_real_escape_string($vLogin),
mysql_real_escape_string($vPwd));
echo $query;
$result = mysql_query($query);

If (!$result){
header("location:index.php");
}
else{
$row = mysql_fetch_row($result);
$_SESSION["id_user"]= $row[0];
header("location:../pages/gestion_admin.php");
}

mysql_close();
?>
«Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
Jean-Jacques ROUSSEAU

Répondre à bissdebrazza

2

toto, le 20 sep 2008 à 14:08:08

Bonjour

un petit peu n'importe quoi, le $query...

<?php 
include ("../include/conn.php"); 

/* variables passées depuis la page de connection */ 
$vLogin =(isset($_POST["login"])) ? $_POST["login"] : ""; 
$vPwd =(isset($_POST["pwd"])) ? $_POST["pwd"] : ""; 

/*mettre cette partie en fonction php avec le dessus*/ 
$query = "SELECT id_user FROM `utilisateurs` WHERE login_user = '".mysql_real_escape_string($vLogin)."' and pwd_user='".mysql_real_escape_string($vPwd))."'";

echo $query; 
$result = mysql_query($query); 

If (!$result){ 
header("location:index.php"); 
} 
else{ 
$row = mysql_fetch_row($result); 
$_SESSION["id_user"]= $row[0]; 
header("location:../pages/gestion_admin.php"); 
} 

mysql_close(); 
?> 

Répondre à toto

3

djibouteam, le 20 sep 2008 à 14:38:14

Chers amis,
tout d'abord merci pour votre rapidité pour m'avoir répondu mais je suis au regret de vous annoncer que çà ne marche pas.
le echo $query est un oubli, il me servait à savoir ce qui était envoyé à MySQL,
pourtant quand je le rentre sous MySQL ça me renvoit bien ce que j'attend mais en PHP que je rentre un login et password valides ou non $result est égal à ressource id#4 ce qui signifie que MySQL lui renvoit un id_user valide,
vous comprenez, l'erreur ne vient pas de la requete, mais de la reponse mysql_query($query).....

Répondre à djibouteam

4

 djibouteam, le 20 sep 2008 à 14:55:22

Bon bon bon, que dire a part que je viens de trouver la solution.

<?php
include ("../include/conn.php");

/* variables passées depuis la page de connection*/
$vLogin =(isset($_POST["login"])) ? $_POST["login"] : "";
$vPwd =(isset($_POST["pwd"])) ? $_POST["pwd"] : "";

$query = sprintf("SELECT id_user FROM `utilisateurs` WHERE login_user = '%s' and pwd_user='%s'",
mysql_real_escape_string($vLogin),
mysql_real_escape_string($vPwd));


$result = mysql_query($query);
$row = mysql_fetch_row($result);

/* ou la meme en plus factorisé :
$row = mysql_fetch_row(mysql_query($query));
*/

If (empty($row[0])){
mysql_close();
header("location:../index.php");
}
else{
$_SESSION["id_user"]= $row[0];
mysql_close();
header("location:../pages/gestion_admin.php");
}

Voilà, le mysql_close() est pour ne pas laisser la BD ouverte inutilement....
Merci encore, pour vos réponses, elles m'ont permis de percévérer


?>

Répondre à djibouteam