plusieurs conditions

Eléphant du PHP | 299 Messages

03 juin 2010, 19:32

Bonjour, j' ai un souci avec la verification de mon formulaire, je ne comprend pas ce qui bloque.

J' ai quelques champs plus une verif captcha, si je me trompe dans le captcha, ca stoppe bien el traitement, si le captcha est correct, l' inscription se fait bien, et ce meme si les champs sont vides, d' ou le probleme.
		  $pseudo = $_POST['pseudo'];
		  $mdp = $_POST['mdp'];
		  $email = $_POST['email'];
		  $verif = $_POST['verif'];
		  $rang = '2';


		  if((isset($pseudo))&&(isset($mdp))&&(isset($email))&&(isset($verif))&&($verif == '6'))
		  {
		  mysql_query("INSERT INTO users_t VALUES('', '$pseudo', '$mdp', '$email', '$rang', '$ip')");
		  echo '<img src="images/divers/cartman.png" alt="" />';
		  }
		  else
		  {
		  echo '<img src="images/divers/cartman2.png" alt="" />';
		  }
Merci d' avance pour votre aide :/

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

03 juin 2010, 21:09

T'as affiché ce qu'il avait dans les variables avec var_dump() par exemple?

Regarde bien la doc de isset(), les exemples, et les fonctions liées ("see also") : http://fr.php.net/isset

ViPHP
ViPHP | 1996 Messages

04 juin 2010, 03:29

Isset() veut dire "existe", utilise empty() pour vérifier si "vide ou pas"
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 299 Messages

04 juin 2010, 18:25

Merci je vais tester vos conseils de suite, mais question :

par logique si on ne rempli pas les champs, !isset n' est donc pas valable sachant que champs vide = inexistant?

ViPHP
ViPHP | 1996 Messages

06 juin 2010, 17:49

Tout a fait. Si ton client poste via un formulaire POST et ne rempli pas le champ "essai", isset($_POST["essai"]) sera TRUE et empty($_POST["essai"]) le sera aussi.
Généralement moi j'interroge ainsi via une fonction:
$tab_champ = array ("essai", "test", "nom", "prenom");

function test_si_vide ($tableau)
{
  foreach ($tableau as $champ)
  {
    if (empty($_POST[$champ]))
        return FALSE;
  }
  return TRUE;
}

if (isset($_POST))
{
  if (!test_si_vide($tab_champ))
   echo $message;
}
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr