index indefini

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : index indefini

par [BQS]Jayce » 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...

par Truc » 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

par zeus » 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]

index indefini

par fafa » 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

par Truc » 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

index indefini

par fafa » 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