Code dauthentification en php

Résolu/Fermé
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 - 15 sept. 2009 à 13:55
 le père - 16 sept. 2009 à 11:35
Bonjour,
Svp j'ai un formulaire d'identification et l'action choisie est verif.php et dans verif voici le code php qu'il y a
<?php
if (isset ($_POST['login']) AND isset ($_POST['pwd']))
{
if ($_POST['login'] != NULL AND $_POST['pwd'] != NULL)
{
$login=$_POST['login'];
$pwd=$_POST['pwd'];
include ('connexion.php');
$req= mysql_query ("SELECT * FROM identification WHERE login='$login' AND pwd='$pwd'") or die('Erreur de connexion au serveur de base de données '.mysql_error());
$i= mysql_num_rows($req);
if ($i==1){echo ("vous êtes identifiez");}
else {echo ("vous n'êtes pas reconnu ds la base");}
}
else {echo ("Aucun champs ne doit rester vide");}
mysql_close();
}
?>
Ok quand j'execute c-a-d quand je rempli les champs de mn formulaire et je valide ça me renvoi une page vierge veuillez m'aidez à deceler le probleme ds ce code et à le corrigé svp.
Merci
A voir également:

13 réponses

Bonjour

Il y a une branche de ton programme pour laquelle rien ne s'affiche : c'est le cas où $_POST['login'] ou $_POST['pwd'] ne sont pas définis.
Ça vient sans soute du formulaire, dont les champs ne s'appellent pas login et pwd, ou qui n'utilise pas la méthode POST

Peux-tu montrer le code du formulaire ?
0
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
15 sept. 2009 à 16:06
Ok voici le code du formulaire.
<form action="verif.php" method="post">
<table border="1" align="center">
<caption align="center">Identification</caption>
<tr align="left">
<td>Nom d'utilisateur</td>
<TD><input type="text" name="login" /></TD>
</tr>
<tr align="left">
<td>Mot de passe</td>
<td><input type="password" name="pwd" /></td>
</tr>
</table>
</form>

Merci pour tout ce que vous faites
0
Comment fais-tu pour envoyer le formulaire ? Je ne vois pas de bouton submit.
Pour voir ce qui arrive vraiment dans ta page verif.php, ajoute dèle le début :
<?php
var_dump($_POST);
...
0
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
15 sept. 2009 à 16:51
Merci. Je viens de trouvé les erreurs d'abord je n'ai pas pris la methode "post" je ne sais pas comment j'ai fais pour choisir "get" et aussi j'avais mal saisi le nom de table dans laquelle je devais enregistrer les données.
Merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
15 sept. 2009 à 17:11
Excusez moi je veux egalement savoir un truc. Est-ce possible d'utiliser ses variables sur une autre pages?
Genre a pres identification je veux que le nom de la personne s'affiche sur la page sur laquelle elle va quoi. J'espere avoir été claire.
Merci encore
0
Oui, c'est possible. Cela s'appelle les sessions. Il faut mettre au début de ton script un appel à la fonction session_start(). Ensuite, tu dispose d'un tableau $_SESSION (c'est une varibale prédéfinie en PHP) qui est transmis de page en page. Tu peux écrire tes valeurs dedans : $_SESSION['nom'] = $nom, $_SESSION['prenom'] = $prenom etc... et les récupérer dans une autre page (qui commence aussi avec session_start()) : $nom=$_SESSION['nom'] etc...
0
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
15 sept. 2009 à 18:07
Alors dois mettre session_start ds php si oui je l'ai fais ça affiche même le nom comme voulu mais tout en haut de la page il'y a un message d'erreur je comprends pas
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\memoire\verif.php:8) in C:\wamp\www\memoire\verif.php on line 9

voic mon code de verif.php now:
<?php
session_start();
if (isset ($_POST['login']) AND isset ($_POST['pwd']))
{
if ($_POST['login'] != NULL AND $_POST['pwd'] != NULL)
{
$login=$_POST['login'];
$_SESSION['login']=$login;
$pwd=$_POST['pwd'];
$_SESSION['pwd']=$pwd;
include ('connexion.php');
$req= mysql_query ("SELECT * FROM connexion WHERE login='$login' AND pwd='$pwd'") or die('Erreur de connexion au serveur de base de données '.mysql_error());
$i= mysql_num_rows($req);
if ($i==1){include ('redaction.php');}
else {include ('identification.html');}
}
else {echo ("Aucun champs ne doit rester vide");}
mysql_close();
}
?>


Alors je fais quoi now?
Merci
0
Le message d'erreur que tu indiques ne vient pas du code que tu montres.
D'après le message d'erreur, le session_start() est à la ligne 9, alors que dans ton script il est à la ligne 2.

Es-tu bien sûr que ce message d'erreur va avec ce script ?
0
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
16 sept. 2009 à 10:55
Bonjour
Excusez moi voici le code complet que j'aurais du vous envoyer:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
<?php
session_start();
if (isset ($_POST['login']) AND isset ($_POST['pwd']))
{
if ($_POST['login'] != NULL AND $_POST['pwd'] != NULL)
{
$login=$_POST['login'];
$_SESSION['login']=$login;
$pwd=$_POST['pwd'];
$_SESSION['pwd']=$pwd;
include ('connexion.php');
$req= mysql_query ("SELECT * FROM connexion WHERE login='$login' AND pwd='$pwd'") or die('Erreur de connexion a la base de données '.mysql_error());
$i= mysql_num_rows($req);
if ($i==1){include ('redaction.php');}
else {include ('identification.html');}
}
else {echo ("Aucun champs ne doit rester vide");}
mysql_close();
}
?>
</body>
</html>

Merci a bientot
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
16 sept. 2009 à 11:02
Bonjour,

Fais attention a l'injection SQL aussi !

plus d'infos

0
la fonction session_start doit être appelée avant tout envoi de données vers le client. Donc avant le <!DOCTYPE...

<?php session_start(); ?>
<!DOCTYPE html PUBLIC etc...


mais si tu utilises d'autres fonctions qui font appel aux en-têtes HTTP (envoi de cookies, redirection par "Location: "...) tu retrouveras le même problème plus loin
0
bodry24 Messages postés 86 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 18 août 2014 7
16 sept. 2009 à 11:23
Merci les amis ça marche maintenant. Je veux un conseil de professionel sur ceci. Est 'il bien de faire un formulaire en deux page s'il est grand ou doit -on toujours le faire sur une page.
Merci
0
Si la question est purement technique même si je ne suis pas un pro, je n'hésite pas à dire que c'est bien sûr plus simple de gérer un seul formulaire que deux, peu importe le nombre de champs.
Si c'est une question d'ergonomie, je vais bien me garder de répondre.
0