Probleme de gestion de login et mdp

[Résolu]
Signaler
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour,

Nous debutons en php et postgres, et nous avons un pb qui est le suivant :
- Nous avons une premiere page ds laquel nous saissisons un login et un mdp :

<?php

$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=mmm");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}

?>
<CENTER>Identification


<FORM name='entre' action="verif.php" METHOD=POST>

Votre Pseudo :



Votre Mot de Passe :




</FORM>
</FORM>
</CENTER>
- Nous avons une autre page qui recupere le login et mdp qui ensuite verifie leur existance ds la Bdd :
<?php


$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=soum");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}
// verifie que l'on recupere bien le login et le mdp
$login = $_POST['login'];
$mdp = $_POST['mdp'];
echo "le nom 1 est : $login
";

echo "le mdp 1 est : $mdp
";

$result3 = pg_query($conn, "SELECT nom_aut from auteur where nom_aut='$login'");

$result2 = pg_query($conn, "SELECT mdp_aut from auteur where mdp_aut=$mdp");
if ( $mdp == $result2) {
echo "le nom 2 est : $login
";
}
else
{
echo "Bad MDP ou NOM";
exit;
}

?>

- Nous savons que la 2eme page est completement fausse et justement nous aimerions bien avoir de l'aide afin de pouvoir gerer le probleme. C'est à dire verifier que le nom existe bien dans la base et que le mdp est correcte afin de pouvoir acceder aux pages suivantes. Et ensuite qu'il garde en memoire le login de la personne connectée pour pouvoir travailler avec la variable ...

Merci d'avance

ChouchouLilou les programmeuses en carton !!!

24 réponses

Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
corrrection



$nb=pg_num_rows($resultat);
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
salut,


deja vous pouvez ne faire qu'une seule requete

si utilisateur et mot de passe trouvés --> ok

sinon erreur




$resultat = pg_query($conn, "SELECT login, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");




$nb=pg_num_rows($result);

if($nb==0) -->erreur : utilisateur et mot de passe associé non trouvés dans la base



je ne connais pas postgres

mais apres on doit recuperer les valeurs (1 seul enreg trouvé)

du genre


$login=pg_result($resultat,0,'login');

$mdp=pg_result($resultat,0,'mdp_aut');



ou
utiliser directement $login et $mdp saisies par l'utilisateur (puisque trouvées dans la base) et

enregistrer les deux données dans des variables sessions...

bon courage
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
Ok merci, ca marche ...
est il possible de nous expliquer comment pouvoir rediriger vers une autre page lorsque le login est bon !!!

Merci d'avance...

ChouchouLilou les programmeuses en carton !!!
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
header("Location: page.php");



ou page.php peut être une variable, of course
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

la connexion en haut est inutile vu que tu te connectes ensuite ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
"$resultat = pg_query($conn, "SELECT login, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");"

Prend trop de ressources pour rien ca ! :)

$sql ="SELECT COUNT(*) FROM auteur WHERE ..... ";
$q = pg_query($sql);
$data = pg_fetch_assoc($q);
if ( (int) $data[0] === 1 ) {
// login ok
}
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
yes je le note , merci
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
Il nous met un message d'erreur, tu ne saurais d'ou ca pourait provenir, sachant que notre code est :

$resultat = pg_query($conn, "SELECT nom_aut, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");


$nb=pg_num_rows($resultat);
if($nb==0)
{
echo "Bad MDP ou NOM";
exit;
}
else
{
header("Location: menu_mod.php");

}

header("Location: menu_mod.php");

-erreur :

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\verif.php:3) in C:\Program Files\Apache Group\Apache2\htdocs\verif.php on line 29

merci d'avance

ChouchouLilou les programmeuses en carton !!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
N'oublie pas les isset() pour vérifier que les données du formulaire soient bien présentes avant sinon t'auras des erreurs, idem en ce qui concerne les failles de SQL injection.

if(!isset($_POST['login'],$_POST['mdp']))
{
exit;
}

if(get_magic_quotes_gpc()===0)
{
$_POST['login']=mysql_real_escape_string($_POST['login']);
$_POST['mdp']=mysql_real_escape_string($_POST['mdp']);
}
a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
"Warning: Cannot modify header information -
headers already sent by (output started at C:\Program Files\Apache
Group\Apache2\htdocs\verif.php:3) in C:\Program Files\Apache Group\Apache2\htdocs\verif.php on line 29"

Erreur "headers already sent"

a +
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
en fait jamais d'echo avant un header

si erreur --> redirection page d'erreur

so ok --> redirection page ok
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
if($nb==0)
{
echo "Bad MDP ou NOM";
exit;
}
else
{
header("Location: menu_mod.php");

}

header("Location: menu_mod.php"); CELUI LA EST INUTILE c'est lui qui génère l'erreur
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
oui c'est une erreur de notre part lorsque l'on a copié le code pour vous le montrer ...

ChouchouLilou les programmeuses en carton !!!
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
Je sais pas si c'est due a une erreur de comprehension de notre part, on a bo chercher à regler le pb mais la redirection ne marche toujours pas, voici notre code au complet :

<?php


$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=mmm");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}
$login = $_POST['login'];
$mdp = $_POST['mdp'];
echo "le nom 1 est : $login
";


echo "le mdp 1 est : $mdp
";
//Affichage du resultat de l'insertion et de ce que contient la table


$resultat = pg_query($conn, "SELECT nom_aut, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");


$nb=pg_num_rows($resultat);
if($nb==0)
{


header("location: erreur.php");


}
else
{


header("location: menu_mod.php");
}


?>


Merci d'avance

ChouchouLilou les programmeuses en carton !!!
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
Je sais pas si c'est due a une erreur de comprehension de notre part, on a bo chercher à regler le pb mais la redirection ne marche toujours pas, voici notre code au complet :

<?php


$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=mmm");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}
$login = $_POST['login'];
$mdp = $_POST['mdp'];
echo "le nom 1 est : $login
";


echo "le mdp 1 est : $mdp
";
//Affichage du resultat de l'insertion et de ce que contient la table


$resultat = pg_query($conn, "SELECT nom_aut, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");


$nb=pg_num_rows($resultat);
if($nb==0)
{


header("location: erreur.php");


}
else
{


header("location: menu_mod.php");
}


?>


Merci d'avance

ChouchouLilou les programmeuses en carton !!!
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
Je sais pas si c'est due a une erreur de comprehension de notre part, on a bo chercher à regler le pb mais la redirection ne marche toujours pas, voici notre code au complet :

<?php


$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=mmm");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}
$login = $_POST['login'];
$mdp = $_POST['mdp'];
echo "le nom 1 est : $login
";


echo "le mdp 1 est : $mdp
";
//Affichage du resultat de l'insertion et de ce que contient la table


$resultat = pg_query($conn, "SELECT nom_aut, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");


$nb=pg_num_rows($resultat);
if($nb==0)
{


header("location: erreur.php");


}
else
{


header("location: menu_mod.php");
}


?>


Merci d'avance

ChouchouLilou les programmeuses en carton !!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
t'as regardé le lien que je t'ai passé plus haut ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
oui on a regardé, merci pour ton lien! on a modifier notre code de facon a ce qu'il ressemble a celui du lien mais impossible de le faire marcher

ChouchouLilou les programmeuses en carton !!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
quel est ton code de toute la page ? (pas seulement le code php)
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
14
Date d'inscription
mercredi 28 décembre 2005
Statut
Membre
Dernière intervention
22 janvier 2006
1
Alors c'est sur 2 pages, la premiere "authentification.php" :
<?php


$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=soum");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}


?>
<CENTER>Identification


<FORM name='entre' action="verif.php" METHOD=POST>


Votre Pseudo :


Votre Mot de Passe :




</FORM>
</FORM>
</CENTER>


et la 2eme qui s'appele verif.php :

<?php


$conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres password=soum");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}
$login = $_POST['login'];
$mdp = $_POST['mdp'];
echo "le nom 1 est : $login
";


echo "le mdp 1 est : $mdp
";
//Affichage du resultat de l'insertion et de ce que contient la table


$resultat = pg_query($conn, "SELECT nom_aut, mdp_aut from auteur where nom_aut='$login' and mdp_aut='$mdp' ");


$nb=pg_num_rows($resultat);
if($nb==0)
{


header("location: erreur.php");


}
else
{


header("location: menu_mod.php");
}


?>


Merci d'avance .... et encore desolé

ChouchouLilou les programmeuses en carton !!!