Page 1 sur 1

plusieurs conditions

Posté : 03 juin 2010, 19:32
par graffx
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 :/

Re: plusieurs conditions

Posté : 03 juin 2010, 21:09
par ouckileou
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

Re: plusieurs conditions

Posté : 04 juin 2010, 03:29
par Aureusms
Isset() veut dire "existe", utilise empty() pour vérifier si "vide ou pas"

Re: plusieurs conditions

Posté : 04 juin 2010, 18:25
par graffx
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?

Re: plusieurs conditions

Posté : 06 juin 2010, 17:49
par Aureusms
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;
}