Aide pour page de connexion php
Résolu
Bonjour, je suis en terminale stg gsi et travaillant sur le php avec une page de connexion qui pause problème.
J'ai plus précisément Undefined variable comme erreur que j'ai réussi à enlever pour les variables définies au début. Bien sûr, je n'ai pas fini de sécuriser je pense qu'il manque quelques trucs avant que cela soit correct^^
Voici les erreurs:
Notice: Undefined variable: Identifiant in c:\program files\easyphp1-8-modgsi\www\ambulance maurin\connexion3.php on line 30
Notice: Undefined variable: motdepasse in c:\program files\easyphp1-8-modgsi\www\ambulance maurin\connexion3.php on line 30
Merci d'avance pour ceux qui voudront bien m'aider (même si ça se peut que ça soit des erreurs bêtes, je débute^^')
J'ai plus précisément Undefined variable comme erreur que j'ai réussi à enlever pour les variables définies au début. Bien sûr, je n'ai pas fini de sécuriser je pense qu'il manque quelques trucs avant que cela soit correct^^
Voici les erreurs:
Notice: Undefined variable: Identifiant in c:\program files\easyphp1-8-modgsi\www\ambulance maurin\connexion3.php on line 30
Notice: Undefined variable: motdepasse in c:\program files\easyphp1-8-modgsi\www\ambulance maurin\connexion3.php on line 30
<html> <head> <title>Connexion</title> </head> <body> <form method="POST" action="connexion3.php"> <h4>Connexion au site</h4> <p> <label>Pseudo : </label><br> <input> </p> <p> <label>Code secret : </label><br> <input type="password"> </br><input type="submit" value="Se connecter"> </p> </form> </body> </html>
<?php
session_start();
// Récupération des données saisies dans le formulaire d'accueil
// Avant d'utiliser $_POST['identifiant']
if (isset($_POST['identifiant']))
{
$Identifiant = $_POST['identifiant']; // Instructions si $_POST['identifiant'] existe
}
// Avant d'utiliser $_POST['motdepasse']
if (isset($_POST['motdepasse']))
{
$motdepasse = $_POST['motdepasse']; // Instructions si $_POST['motdepasse'] existe
}
// Création d'une variable de session (le numéro de client)
$_SESSION['NumSalSession']='$Identifiant';
// Connexion au serveur MySQL
$db=mysql_connect('localhost','root','***') or die("erreur de connexion".mysql_error());
// Ouverture de la base
mysql_select_db("ambulance maurin",$db) or die("erreur de connexion à la base");
// Requête de recherche du mot de passe du client à partir du numéro de client saisi
$req="SELECT * FROM salariés WHERE Identifiant='$Identifiant' and motdepasse='$motdepasse';";
// Execution de la requête
$sql=mysql_query($req);
if (mysql_numrows($sql)==1)
// La requête renvoie au plus un résultat (le client recherché)
{
header('Location: Accueil_connecte.html');
}
else
// La requête ne renvoie aucun résultat, l'identifiant est inconnu
// et/ou le mot de passe est incorrect (on ne distingue pas les deux cas)
{
echo 'Identifiant et/ou mot de passe incorrects. <a href=connexion1.html>Veuillez réessayer.</a>';
}
// Fermeture de la connexion à MySQL
mysql_close();
?>
Merci d'avance pour ceux qui voudront bien m'aider (même si ça se peut que ça soit des erreurs bêtes, je débute^^')
Configuration: Windows XP Firefox 3.0.10
2 réponses
-
Bonjour
Comme le message l'indique, ta variable $Identifiant n'est pas définie. PHP ne peut donc pas se servir de sa valeur, elle n'existe pas .
Tu croyais qu'elle était définie ? Parce que tu as fait if (isset($_POST['identifiant'])) etc... ?
Mais dans ton formulaire, il n'y a aucun champ qui s'appelle 'identifiant'. Si ce champ doit correspondre au pseudo, dans le formulaire, au lieu d'un simple <input> tu devrais avoir <input type="text" name="identifiant">
C'est le name= qui va créer les variables $_POST['qqchose'] quand tu envoies le formulaire
Tu as le même problème avac le champ motdepasse, le remède est le même (mais garde le type password bien sûr)
Pendant qu'on y est, petite remarque : tu devrait mettre un else à tes if (isset($_POST['identifiant'])) pour initialiser quand même ta variable $Identifiant (='') sinon si quelqu'un appelle ta page sans passer par le formulaire, tu retrouveras la même erreur, $Identifiant ne sera toujours pas défini-
Merci pour les indications sur le code html, j'y avais même pas pensé^^'
pour ce qui est de rajouter les else aux ifelseif (isset($_POST['identifiant'])) { $Identifiant = $_POST['identifiant']; // Instructions si $_POST['identifiant'] existe } // Avant d'utiliser $_POST['motdepasse'] elseif (isset($_POST['motdepasse'])) { $motdepasse = $_POST['motdepasse']; // Instructions si $_POST['motdepasse'] existe
Comme ça tu veux dire? j'ai parse error ligne 7 en passant directement par ma page sans aller sur le formulaire.
-
-
Je voulais dire
if (isset($_POST['identifiant'])) { $Identifiant = $_POST['identifiant']; // Instructions si $_POST['identifiant'] existe } else $Identifiant = '';
(idem pour ton mot de passe)