index indefini

fafa
Invité n'ayant pas de compte PHPfrance

23 févr. 2006, 14:30

Salut !
Voila mon pb j'ai un retour que je ne comprends pas:
if($_POST["login"] != "" && $_POST["mot_de_passe"] != "")
{
$login = $_POST["login"] ;
$pass = md5($_POST["mot_de_passe"]) ;

Dans mon formulaire de saisie
<input type="text" name="login" maxlength="250"></td>
</tr>
<tr>
<td>Votre mot de passe :</td>
<td><input type="password" name="mot_de_passe" maxlength="10"></td>
Cela me renvoie ceci:

Code : Tout sélectionner

Notice: Undefined index: login in c:\program files\easyphp1-8\www\admin\login.php on line 8
Dans ma table :
j'ai login_user et pass_user comme champs

Merci par avance

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 14:34

Salut,

la prochaine fois utilise les balises [ php ] pour une coloration :wink:

Donc tu fait appel au varaibles post sans savoir si elles exisent, ce qui n'est pas le cas lors du 1er chargement de la page donc erreur signalant que la variable n'est pas définie.

Utilise isset()
if(isset($_POST["login"]) &&  isset($_POST["mot_de_passe"] ))

ensuite tu inclus ton code dans ce test

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

fafa
Invité n'ayant pas de compte PHPfrance

23 févr. 2006, 14:49

je te passe mon code car je n'ai plus le message d'erreur precedent mais les redirection ne marchent pas, alors si je pouvais abuser...merci par avance :
 if(isset($_POST["login"]) != "" && isset($_POST["pass"]) != "")
{
  $login = $_POST["login"] ;
  $pass  = md5($_POST["pass"]) ;
 
  //connexion au serveur
  $cnx = mysql_connect($SERVEUR, $USER, $PASS, $DB) ;
  //sélection de la base de données
  $DB = mysql_select_db($DB) ;
	
  //création de la requête SQL
  $sql = "SELECT login, pass FROM user WHERE login = '".$login."' AND pass = '".$pass."'"	;
  //exécution de la requête SQL
  $requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ;
  //on récupère le résultat
  $result = mysql_fetch_object($requete) ;
  //si la requête s'est bien passée
  if(is_object($result))
  {
    //début de la sessions
    session_start() ;
    //enregistrement d'une variable de session, ici le login de l'utilisateur
    $_SESSION["login"] = $login ;
 
    header("Location: page_securise.php") ;
  }//fin if
  //sinon on retourne à la page d'inscription
  else
  {
    header("Location: login.php") ;
  }//fin else
}//fin if

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 févr. 2006, 15:03

modération : fafa, il me semble que Truc t'a indiqué d'utiliser les balise
 pour poster du code

Tu pourras le trouver au dessus de la zone de saisie de ton texte

Pour tes 2 1er messages, je les ai modifié mais pense y la prochaine fois ;)[/color]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2006, 15:06

la prochaine fois utilise les balises [ php ] pour une coloration :wink:
Parce que isSet() teste l'existence de la varible, comme dis elle n'esiste pas lors du 1er chargement donc tu n'entre pas dans le test et comme tu n'as pas de else rien ne se passe:
if(isset($_POST["login"]) != "" && isset($_POST["pass"]) != "" && !empty($_POST["login"]) && !empty($_POST["pass"])) 
{		
	$login = $_POST["login"] ;
	$pass = md5($_POST["pass"]) ;
	
	//connexion au serveur
	$cnx = mysql_connect($SERVEUR, $USER, $PASS, $DB) ;
	//sélection de la base de données
	$DB = mysql_select_db($DB) ;
	
	//création de la requête SQL
	$sql = "SELECT login, pass FROM user WHERE login = '".$login."' AND pass = '".$pass."'" ;
	//exécution de la requête SQL
	$requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ;
	//on récupère le résultat
	$result = mysql_fetch_object($requete) ;
	//si la requête s'est bien passée
	if(is_object($result))
	{
		//début de la sessions
		session_start() ;
		//enregistrement d'une variable de session, ici le login de l'utilisateur
		$_SESSION["login"] = $login ;
		
		header("Location: page_securise.php") ;
	}//fin if		 
}
else
{
	header("Location: login.php") ;
}//fin else
//fin if

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 67 Messages

23 févr. 2006, 16:22

pour eviter cela utilise

if (!empty($_POST['XXXX']))

au lieu de isset... ça fonctionne beaucoup mieux car il test si la variable est vide ... isset test l'initialisation de la variable...