PB page AUTHENTIFICATION PHP/MySQL [Résolu/Fermé]

Messages postés
5
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
27 septembre 2008
- - Dernière réponse : djibouteam
Messages postés
5
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
27 septembre 2008
- 20 sept. 2008 à 14:55
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();
?>
Afficher la suite 

4 réponses

0
Merci
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(); 
?> 
Messages postés
2071
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
686
-1
Merci
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();
?>
Messages postés
5
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
27 septembre 2008
-1
Merci
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).....
Messages postés
5
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
27 septembre 2008
-1
Merci
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


?>