Aide pour page de connexion php
Résolu
KamiTeru
Messages postés
3
Statut
Membre
-
KamiTeru Messages postés 3 Statut Membre -
KamiTeru Messages postés 3 Statut Membre -
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^^')
A voir également:
- Aide pour page de connexion php
- Gmail connexion - Guide
- Impossible de supprimer une page word - Guide
- Page d'accueil - Guide
- Imprimer tableau excel sur une page - Guide
- Word numéro de page 1/2 - Guide
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
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
pour ce qui est de rajouter les else aux if
elseif (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'] existeComme ça tu veux dire? j'ai parse error ligne 7 en passant directement par ma page sans aller sur le formulaire.