PB page AUTHENTIFICATION PHP/MySQL

Résolu
djibouteam Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
djibouteam Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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();
?>
A voir également:

4 réponses

toto
 
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(); 
?> 
0
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
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();
?>
-1
djibouteam Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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).....
-1
djibouteam Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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


?>
-1