boucle if

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 : boucle if

Re: boucle if avec required

par sirakawa » 22 déc. 2011, 15:43

<input type="text" name="usrname" required="required" />
mériterait des tests plus approfondis que ceux que j'ai faits.

Re: boucle if

par moogli » 22 déc. 2011, 11:49

:mrgreen: :mrgreen: :mrgreen: :mrgreen:

Re: boucle if

par Rathorian » 22 déc. 2011, 11:41

Merci moogli pour l'éclaircissement.
Je l'avais pourtant dis que j'étais pas un pro en PHP... :lol: fallait que je face une erreur sinon ce n'était pas drôle !!!

Re: boucle if

par moogli » 22 déc. 2011, 10:36

Bonsoir Aureusms,

Je viens de faire un test :
if (empty($e))
echo $e;
Me retourne une erreur de variable non définie et ne renvoi pas false.
Après je suis loin d'être un pro en PHP.
si l'on réfléchie à ton code tu fait
- si la variable $e est vide ou n'existe pas (rappelons que empty c'est isset + test de contenue)
- J'affiche la variable ....

c'est donc normal que tu ais une erreur.
empty retour true lorsque la variable
- n'existe pas
- contient zéro
- contient null
- contient false

la donc de la fonction empty pour plus d'info :)

le bon test est
<?php
if (!empty($e)) 
    echo $e;
?>
@+

Re: boucle if

par hagelslag » 22 déc. 2011, 10:23

Merci à tous pour vos retours.
Vous m'avez mis sur la voie pour chercher une alternative à mon code.
J'ai donc mixé les vides (empty) et non vides (!empty)
Celà fonctionne parfaitement même si nul doute que l'on peut faire plus propre, je reste à l'écoute.

Voici le nouveau code

Code : Tout sélectionner

// si les checkbox sont vides if(empty($checkbox_naissance) && (empty($checkbox_mariage)) && (empty($checkbox_deces))) { echo "<font color=\"red\">Merci de cocher une table pour lancer une recherche.</font>"; exit; } // si le nom, la ville et le département sont vides elseif(empty($nom_acte) && (empty($ville_acte)) && (empty($departementacte))) { echo "<font color=\"red\">Un minimum d'informations svp</font>"; exit; } // si le nom est rempli, mais la ville et le département sont vides**********// elseif(!empty($nom_acte) && (empty($ville_acte)) && (empty($departementacte))) { echo "<font color=\"red\">Nom remplis, ville et département vide</font>"; exit; } // si le nom et le département sont remplis, la ville est vide***************// elseif(!empty($nom_acte) && (empty($ville_acte)) && (!empty($departementacte))) { echo "<font color=\"red\">Nom et département remplis, ville vide</font>"; exit; } // si le nom est vide, et la ville et le département sont remplis************// elseif(empty($nom_acte) && (!empty($ville_acte)) && (!empty($departementacte))) { echo "<font color=\"red\">Nom vide, Ville et département sont remplis</font>"; exit; } // si le nom et la ville sont vides, département est remplis*****************// elseif(empty($nom_acte) && (empty($ville_acte)) && (!empty($departementacte))) { echo "<font color=\"red\">Nom vide et Ville sont vides, département est rempli</font>"; exit; } // si le nom et le département sont vides et la ville est remplie************// elseif(empty($nom_acte) && (!empty($ville_acte)) && (empty($departementacte))) { echo "<font color=\"red\">Nom et département vide, ville remplis</font>"; exit; } // si le nom et la ville sont remplis, mais le département est vide**********// elseif(!empty($nom_acte) && (!empty($ville_acte)) && (empty($departementacte))) { echo "<font color=\"red\">Nom et Ville remplis, département vide</font>"; exit; } // si le nom, la ville et le département sont remplis************************// elseif(!empty($nom_acte) && (!empty($ville_acte)) && (!empty($departementacte))) { echo "<font color=\"red\">Nom, Ville et département remplis</font>"; exit; }

Re: boucle if

par Rathorian » 22 déc. 2011, 00:33

Bonsoir Aureusms,

Je viens de faire un test :
if (empty($e))
echo $e;
Me retourne une erreur de variable non définie et ne renvoi pas false.
Après je suis loin d'être un pro en PHP.

Re: boucle if

par Aureusms » 22 déc. 2011, 00:03

empty() Test si la variable est vide.l
Pas que...
En fait empty te fait aussi un isset pour vérifier si la variable existe. Si la variable n'existe pas empty te renverra FALSE.

Re: boucle if

par Rathorian » 21 déc. 2011, 23:43

Bonsoir,

T'es commentaires par rapport au code sont mal formulé.

isset() Test si une variable à été précédemment définit (créé), si la variable n'a pas été créé, isset() te renverra false.
empty() Test si la variable est vide.

faq-tutoriels/isset-empty-null-sont-sur ... 49889.html

boucle if

par hagelslag » 21 déc. 2011, 22:44

Bonjour,

je rencontre quelques soucis dans un code qui me paraissait pourtant simple de prime abord pour le néophite que je suis en php.

Je vérifie que les champs de formulaire sont remplis ou vides et, pour tester, je renvoie un"echo".
Curieusement, certaines conditions sont bien vérifiées et l'écho s'affiche correctement, mais d'autres renvoie un echo incorrect d'une autre condition.
Il me semble pourtant que l'ensemble des elseif sont tous identiques, si vous pouvez me donner votre avis, merci.

Code : Tout sélectionner

<?php include('base/connexion_base.php'); $nom_acte = $_POST['nom_acte']; $checkbox_naissance = $_POST['checkbox_naissance']; $checkbox_mariage = $_POST['checkbox_mariage']; $checkbox_deces = $_POST['checkbox_deces']; $ville_acte = $_POST['ville_acte']; $departementacte = $_POST['departementacte']; // si les checkbox sont vides if(empty($checkbox_naissance) && empty($checkbox_mariage) && empty($checkbox_deces)) { echo "<font color=\"red\">Merci de cocher une table pour lancer une recherche.</font>"; exit; } // si le nom, la ville et le département sont vides elseif(empty($nom_acte) && empty($ville_acte) && empty($departementacte)) { echo "<font color=\"red\">Un minimum d'informations svp</font>"; exit; } //***************************************************************************// // si le nom est rempli, mais la ville et le département sont vides**********// //***************************************************************************// elseif (isset($nom_acte) && empty($ville_acte) && empty($departementacte)) { echo "<font color=\"red\">Nom remplis, ville et département vide</font>"; exit; } //***************************************************************************// // si le nom et le département sont remplis, la ville est vide***************// //***************************************************************************// elseif (isset($nom_acte) && empty($ville_acte) && isset($departementacte)) { echo "<font color=\"red\">Nom et Ville remplis, département vide</font>"; exit; } //***************************************************************************// // si le nom est vide, et la ville et le département sont remplis************// //***************************************************************************// elseif (empty($nom_acte) && isset($ville_acte) && isset($departementacte)) { echo "<font color=\"red\">Nom vide, Ville et département sont remplis</font>"; exit; } //***************************************************************************// // si le nom et la ville sont vides, département est remplis*****************// //***************************************************************************// elseif (empty($nom_acte) && empty($ville_acte) && isset($departementacte)) { echo "<font color=\"red\">Nom vide et Ville sont vides, département est rempli</font>"; exit; } //***************************************************************************// // si le nom et le département sont vides et la ville est remplie************// //***************************************************************************// elseif (empty($nom_acte) && isset($ville_acte) && empty($departementacte)) { echo "<font color=\"red\">Nom et département vide, ville remplis</font>"; exit; } //***************************************************************************// // si le nom et la ville sont remplis, mais le département est vide**********// //***************************************************************************// elseif (isset($nom_acte) && isset($ville_acte) && empty($departementacte)) { echo "<font color=\"red\">Nom et Ville remplis, département vide</font>"; exit; } //***************************************************************************// // si le nom, la ville et le département sont remplis************************// //***************************************************************************// elseif (isset($nom_acte) && isset($ville_acte) && isset($departementacte)) { echo "<font color=\"red\">Nom, Ville et département remplis</font>"; exit; } ?>