Probleme avec session et md5
pady
-
pady -
pady -
Bonjour,
j'ai un probleme avec mon code je m'explique:
je travail sur une base existante ou les login et les mots de passe son existant(les mot de passe son codé en md5 dans la base)
à parti de l'utilisateur et du mot de passe entré l'application doit reconnaitre l'utilisateur et le redirigé vers l'espace approprié : sauf que sa se fait pas la page login.php n'est pas appelé voici mon code :
<?php
session_start ();
include("php/connect.php");
db_connect();
$sql="select
*
from securite
where secu_mdp= '".md5($_POST['pass'])."'
AND secu_login = '".$_POST['login']."';";
$req = db_query($sql);
$row = db_fetch_array($req);
//on vérifie si le login et le mot de passe son autorisé
if ( $_POST['login']==$row['secu_login'] && $_POST['pass']==$row['secu_mdp']) {
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
header ('location: demande_conge.php');
}else{
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
echo '<meta http-equiv="refresh" content="0;URL=index.html">';
}
?>
pourriez vous m'aider SVP
j'ai un probleme avec mon code je m'explique:
je travail sur une base existante ou les login et les mots de passe son existant(les mot de passe son codé en md5 dans la base)
à parti de l'utilisateur et du mot de passe entré l'application doit reconnaitre l'utilisateur et le redirigé vers l'espace approprié : sauf que sa se fait pas la page login.php n'est pas appelé voici mon code :
<?php
session_start ();
include("php/connect.php");
db_connect();
$sql="select
*
from securite
where secu_mdp= '".md5($_POST['pass'])."'
AND secu_login = '".$_POST['login']."';";
$req = db_query($sql);
$row = db_fetch_array($req);
//on vérifie si le login et le mot de passe son autorisé
if ( $_POST['login']==$row['secu_login'] && $_POST['pass']==$row['secu_mdp']) {
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
header ('location: demande_conge.php');
}else{
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
echo '<meta http-equiv="refresh" content="0;URL=index.html">';
}
?>
pourriez vous m'aider SVP
A voir également:
- Probleme avec session et md5
- Md5 checksum - Télécharger - Web & Internet
- Session invalide ou obsolète - Forum Consommation & Internet
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Windows
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Veuillez ouvrir une session avec les privilèges de gestionnaire - Forum Windows 10
20 réponses
Salut,
Dans ton if ou tu vérifie le login et le mot de passe du oublie de crypté le mot de passe saisi en md5.
if ( $_POST['login']==$row['secu_login'] && $_POST['pass']==$row['secu_mdp'])
Donc forcément le mot de passe en claire ne correspond pas au hash md5() de ta basse. Crypte le et normalement cela devrais fonctionner.
if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass']==$row['secu_mdp']))
Bonne continuation.
Dans ton if ou tu vérifie le login et le mot de passe du oublie de crypté le mot de passe saisi en md5.
if ( $_POST['login']==$row['secu_login'] && $_POST['pass']==$row['secu_mdp'])
Donc forcément le mot de passe en claire ne correspond pas au hash md5() de ta basse. Crypte le et normalement cela devrais fonctionner.
if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass']==$row['secu_mdp']))
Bonne continuation.
Bonjour
Petite faute de frappe de le_joker_jour au niveau des parenthèses :
if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass'])==$row['secu_mdp'])
Mais je ne vois pas très bien l'intérêt de cette vérification, puisqu'elle a déjà été faite par la clause WHERE de la requête .
Par contre, il faut vérifier if (mysql_num_rows($req) >0) pour savoir s'il y a au moins un membre a été reconnu
Petite faute de frappe de le_joker_jour au niveau des parenthèses :
if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass'])==$row['secu_mdp'])
Mais je ne vois pas très bien l'intérêt de cette vérification, puisqu'elle a déjà été faite par la clause WHERE de la requête .
Par contre, il faut vérifier if (mysql_num_rows($req) >0) pour savoir s'il y a au moins un membre a été reconnu
merci,
pour votre consideration rapide envers mon problème
if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass'])==$row['secu_mdp']) {
je l'utilise comme condition pour acceder à l'application.
ma base de données est sous PostgresSQL (j'utilise Pgadmin)
la page login.php n'est toujours pas appelé après modification
cordialement
pour votre consideration rapide envers mon problème
if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass'])==$row['secu_mdp']) {
je l'utilise comme condition pour acceder à l'application.
ma base de données est sous PostgresSQL (j'utilise Pgadmin)
la page login.php n'est toujours pas appelé après modification
cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ma base de données est sous PostgresSQL
Pardon, c'était donc pg_num_rows au lieu de mysql_num_rows
Je ne vois toujours pas l'intérêt de if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass'])==$row['secu_mdp']) alors que dans ta requête il y a déjà
where secu_mdp= '".md5($_POST['pass'])."'
AND secu_login = '".$_POST['login']."';";
la page login.php n'est toujours pas appelé après modification
Quelle page ? login.php ou demande_conge.php ?
Vois-tu le message Membre non reconnu... ?
Pardon, c'était donc pg_num_rows au lieu de mysql_num_rows
Je ne vois toujours pas l'intérêt de if ( $_POST['login']==$row['secu_login'] && md5($_POST['pass'])==$row['secu_mdp']) alors que dans ta requête il y a déjà
where secu_mdp= '".md5($_POST['pass'])."'
AND secu_login = '".$_POST['login']."';";
la page login.php n'est toujours pas appelé après modification
Quelle page ? login.php ou demande_conge.php ?
Vois-tu le message Membre non reconnu... ?
Salut,
Que contient ta page login.php, car si ton identification est correct tu appelles la page demande_conge.php
header ('location: demande_conge.php');
je ne comprend pas très bien.
Que contient ta page login.php, car si ton identification est correct tu appelles la page demande_conge.php
header ('location: demande_conge.php');
je ne comprend pas très bien.
D'ailleurs, es-tu sûr de tes fonctions db_query et db_fetch_array ? Normalement, les fonction pour postgreSQL s'appellent pg_xxx
je pars d'un formulaire en html et quand on valide c'est login.php qui doit être appelé et après la reconnaissance par login.php on doit être dirigé vers demande_conge.php ou alors rediriger vers la page html en principe c'est de la sorte que je souhaiterais que la connexion se passe.
mais je reçoid rien même pas de message d'erreur je reste a la page index.html
mais je reçoid rien même pas de message d'erreur je reste a la page index.html
voila ma fonction connect.php que j'"include":
$host = xxxxxxxxxxx;
$database = "xxxxxxxxxx";
$user = "xxxxxxx";
$password = "xxxxxxx";
$connect = xxxxx;
function db_connect()
{
global $connect;
global $host;
global $database;
global $user;
global $password;
$connect = pg_connect( "host=".$host." port=5432 dbname=".$database." user=".$user." password=".$password );
if( $connect == FALSE )
{
echo "Connexion impossible avec la base.";
}
}
function db_fetch_array( $rResultP )
{
return pg_fetch_array( $rResultP );
}
function db_query ( $szQueryP )
{
global $connect;
$result = pg_query( $connect, $szQueryP );
if( !$result )
{
echo "Error 2311 : ".$szQueryP."<br>";
}
return $result;
}
function db_query_silent ( $szQueryP )
{
global $connect;
$result = @pg_query( $connect, $szQueryP );
return $result;
}
function db_num_rows ( $rResultP )
{
return pg_num_rows( $rResultP );
}
function db_field_type( $rResultP, $NumberP )
{
return pg_field_type( $rResultP, $NumberP );
}
function DateFromDb( $DateDb )
{
return substr($DateDb,8,2)."/".substr($DateDb,5,2)."/".substr($DateDb,0,4);
}
function DisplayDes( $textP )
{
return substr($textP,0,15);
}
function Trace( $StrP )
{
$f = fopen("log.txt","a+");
fwrite( $f, $StrP."\n" );
fclose($f);
}
function db_quote( $StrP )
{
$res = $StrP;
$res = str_replace("'","''",$res);
$res = str_replace("\"","''",$res);
$res = str_replace("\\'","'",$res);
$res = str_replace(";excl;","?",$res);
$res = str_replace("#ecom#","&",$res);
return "'".$res."'";
}
?>
$host = xxxxxxxxxxx;
$database = "xxxxxxxxxx";
$user = "xxxxxxx";
$password = "xxxxxxx";
$connect = xxxxx;
function db_connect()
{
global $connect;
global $host;
global $database;
global $user;
global $password;
$connect = pg_connect( "host=".$host." port=5432 dbname=".$database." user=".$user." password=".$password );
if( $connect == FALSE )
{
echo "Connexion impossible avec la base.";
}
}
function db_fetch_array( $rResultP )
{
return pg_fetch_array( $rResultP );
}
function db_query ( $szQueryP )
{
global $connect;
$result = pg_query( $connect, $szQueryP );
if( !$result )
{
echo "Error 2311 : ".$szQueryP."<br>";
}
return $result;
}
function db_query_silent ( $szQueryP )
{
global $connect;
$result = @pg_query( $connect, $szQueryP );
return $result;
}
function db_num_rows ( $rResultP )
{
return pg_num_rows( $rResultP );
}
function db_field_type( $rResultP, $NumberP )
{
return pg_field_type( $rResultP, $NumberP );
}
function DateFromDb( $DateDb )
{
return substr($DateDb,8,2)."/".substr($DateDb,5,2)."/".substr($DateDb,0,4);
}
function DisplayDes( $textP )
{
return substr($textP,0,15);
}
function Trace( $StrP )
{
$f = fopen("log.txt","a+");
fwrite( $f, $StrP."\n" );
fclose($f);
}
function db_quote( $StrP )
{
$res = $StrP;
$res = str_replace("'","''",$res);
$res = str_replace("\"","''",$res);
$res = str_replace("\\'","'",$res);
$res = str_replace(";excl;","?",$res);
$res = str_replace("#ecom#","&",$res);
return "'".$res."'";
}
?>
Si j'ai bien compris, la page login.php c'est celle dont tu donnes le code au début ?
Si la page login n'est pas appelée, c'est qu'il y a un problème dans celle qui l'appelle. Il faut donc commencer par corriger le formulaire en premier. Peux-tu le montrer ?
Si la page login n'est pas appelée, c'est qu'il y a un problème dans celle qui l'appelle. Il faut donc commencer par corriger le formulaire en premier. Peux-tu le montrer ?
Ma connexion Internet a été coupe...c'est de mon iPhone que je vous envoi ce message
les élémentS sont contre moi!!!
les élémentS sont contre moi!!!
bonjour,
navré pour cette interruption qui m'a largement pénalisé voila le code du formulaire en vous remerciant
<html >
<head>
<title>connect_bimrh</title>
</head>
<body>
<form action="login.php" method='post'>
<table align="center" border="1">
<tr>
<td>Login :</td>
<td><input type="text" name="login" maxlength="250"></td>
</tr>
<tr>
<td>mot de passe</td>
<td><input type="password"name="pass" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="logon"></td>
</tr>
</table>
</form>
</body></html>
navré pour cette interruption qui m'a largement pénalisé voila le code du formulaire en vous remerciant
<html >
<head>
<title>connect_bimrh</title>
</head>
<body>
<form action="login.php" method='post'>
<table align="center" border="1">
<tr>
<td>Login :</td>
<td><input type="text" name="login" maxlength="250"></td>
</tr>
<tr>
<td>mot de passe</td>
<td><input type="password"name="pass" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="logon"></td>
</tr>
</table>
</form>
</body></html>
Dans login.php, peux-tu modifier les deux lignes :
et les remplacer par :
et dire ce qui se passe (en remplaçant le mot de passe par des ***) ?
$req = db_query($sql); $row = db_fetch_array($req);
et les remplacer par :
echo $sql,'<br /'; $req = db_query($sql) or die(mysql_error()); $row = db_fetch_array($req) or die(mysql_error()); print_r ($row); exit();
et dire ce qui se passe (en remplaçant le mot de passe par des ***) ?
il ne se passe rien je reste toujours a index.html!!!!!!
le mysql error ne dérange pas je suis sur posgres?
le mysql error ne dérange pas je suis sur posgres?
Pardon pour le or die(mysql_error()), effectivement il n'en faut pas ! J'espère que tu as aussi corrigé ma balise <br /> pas refermée.
Mais c'est dingue que tu restes sur index.html.
Dans ton formulaire, remplace "login.php" par "toto.php" ou n'importe quel nom qui n'existe pas pour voir si tu as au moins une erreur
Mais c'est dingue que tu restes sur index.html.
Dans ton formulaire, remplace "login.php" par "toto.php" ou n'importe quel nom qui n'existe pas pour voir si tu as au moins une erreur
quand je remplace login.php par une autre page elle est appellé!!!!!
oui j'ai fermé la balise "br"
je comprends plus rien
je pense que le problème se situe dans la page "login.php" mais ou????
oui j'ai fermé la balise "br"
je comprends plus rien
je pense que le problème se situe dans la page "login.php" mais ou????
ajoute quelques echo "coucou1"; echo "coucou2"; à plusieurs endroits (en particulier dès le début avant ton include) on verra bien où il va et où il ne va pas
et mets la ligne echo '<meta http-equiv="refresh" content="0;URL=index.html">'; en commentaire, ça évitera qu'elle te renvoie
et mets la ligne echo '<meta http-equiv="refresh" content="0;URL=index.html">'; en commentaire, ça évitera qu'elle te renvoie
Quand tu dis qu'elle n'est pas appelée, qu'est ce qui se passe exactement ? Pas le moindre clignotement de l'écran quand tu cliques sur logon ?
Le fichier login.php que tu manipules est-il bien le bon ?
Fais-tu tes essais en local ou en ligne ?
Respectes-tu-bien le nom du fichier login.php tout en minuscules ?
Le fichier login.php que tu manipules est-il bien le bon ?
Fais-tu tes essais en local ou en ligne ?
Respectes-tu-bien le nom du fichier login.php tout en minuscules ?