Rechercher : dans
Par :

Aide pour page de connexion php

Dernière réponse le 10 mai 2009 à 17:32:35 KamiTeru, le 10 mai 2009 à 00:53:12 
 Signaler ce message aux modérateurs

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




<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

Meilleures réponses pour « Aide pour page de connexion php » dans :
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
[PHP] Pagination VoirPrésentation Cette fonction permet de créer une pagination. Elle ne fait pas qu'afficher bêtement la liste des liens mais il est possible de mettre une limitation du nombre de liens avant et après la page actuelle. La fonction function...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

le père, le 10 mai 2009 à 08:03:55
  • +2

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

Répondre à le père

2

KamiTeru, le 10 mai 2009 à 11:28:56

Merci pour les indications sur le code html, j'y avais même pas pensé^^'
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'] existe


Comme ça tu veux dire? j'ai parse error ligne 7 en passant directement par ma page sans aller sur le formulaire.

Répondre à KamiTeru

3

le père, le 10 mai 2009 à 16:21:36
  • +2

Je voulais dire

if (isset($_POST['identifiant']))
{
         $Identifiant = $_POST['identifiant'];  // Instructions si $_POST['identifiant'] existe
} else $Identifiant = '';

(idem pour ton mot de passe)

Répondre à le père

4

 KamiTeru, le 10 mai 2009 à 17:32:35

Ah d'accord je comprend mieux
merci pour ton aide ;)

Répondre à KamiTeru