If

Bonjour, es-que je peux avoir votre aide , parce que je ss perdu dans les if et les else au faite c'est ce que je veux est très compliqué , c'est la création d'un compte , je dois vérifier que tt les champs sont remplis ensuite je vérifier champ par champ ensuite je vérifie le contenu et la taille de champ un d'eux , svp c'est tres urgent .
<?php
if ($_POST['mat'] == NULL AND $_POST['structure'] == NULL AND $_POST['num_télé'] == NULL AND $_POST['mail'] == NULL) // Si on a quelque chose à enregistrer
{// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$matc = mysql_real_escape_string(htmlspecialchars($_POST['mat']));
$name = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prénom = mysql_real_escape_string(htmlspecialchars($_POST['prénom']));
$num = mysql_real_escape_string(htmlspecialchars($_POST['num_télé']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
?><form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat"><br> Cette information est obligatoire !
Nom :
<input type="text" name="nom">
<br>Prénom :
<input type="text" name="prénom" ><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br> Cette information est obligatoire !
<br>Adresse-mail : *
<input type="text" name="mail"><br> Cette information est obligatoire !
<br>Structure : *
<input type="text" name="structure"><br> Cette information est obligatoire !
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"> <?php}
else {if($matc==NULL)
{?>
<form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat"> Cette information est obligatoire !
Nom :
<input type="text" name="nom"><br>
<br>Prénom :
<input type="text" name="prénom"><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>
<br>Adresse-mail : *
<input type="text" name="mail"><br>
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"><?php}
else{ if($num==NULL)
{?>
<form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat">
Nom :
<input type="text" name="nom"><br>
<br>Prénom :
<input type="text" name="prénom"><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>Cette information est obligatoire !
<br>Adresse-mail : *
<input type="text" name="mail"><br>
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"> <?php
}
else {if($mail==NULL)
{?>
<form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat">
Nom :
<input type="text" name="nom"><br>
<br>Prénom :
<input type="text" name="prénom"><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>
<br>Adresse-mail : *
<input type="text" name="mail"><br>Cette information est obligatoire !
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"> <?php
}}}}
// on va vérifier le type des valeurs du formulaires ainsi leurs tailles
if(strlen($matc)>6 OR leregi("^[A-Z0-9]+",$matc))
{?>
<form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat" value="$matc">Votre matricule est invalide
Nom :
<input type="text" name="nom"><br>
<br>Prénom :
<input type="text" name="prénom"><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>
<br>Adresse-mail : *
<input type="text" name="mail"><br>
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer">
<?php }

if(!is_string($name) OR strlen($name)>25)
{?>
<form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat"><br>
Nom :
<input type="text" name="nom" value="$name">Votre nom est invalide
<br>Prénom :
<input type="text" name="prénom"><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>
<br>Adresse-mail : *
<input type="text" name="mail"><br>
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"> <?php
}
if(!is_string($prénom) OR strlen($prénom)>25)
{?>
<form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat"><br>
Nom :
<input type="text" name="nom">
<br>Prénom :
<input type="text" name="prénom" value="$prénom"><br>Votre prénom est invalide
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>
<br>Adresse-mail : *
<input type="text" name="mail"><br>
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"> <?php
}

else
{if(!is_numeric($num) OR strlen($num)>4)
{?><form method="post" action="essay.php">
Matricule : *
<input type="text" name="mat"><br>
Nom :
<input type="text" name="nom">
<br>Prénom :
<input type="text" name="prénom" value="$prénom"><br>
<br>Numéro téléphone : *
<input type="text" name="num_télé"><br>Votre numéro de téléphone est invalide
<br>Adresse-mail : *
<input type="text" name="mail"><br>
<br>Structure : *
<input type="text" name="structure"><br>
<br>Fonction :
<input type="text" name="fonction"><br>
</p>
<input type="submit" name="submit" value="envoyer"> <?php
}
}

$id=mysql_connect("localhost", "root", "");
$id=mysql_select_db("myhelp");
// Ensuite on enregistre le message
mysql_query("INSERT INTO `Agent` (`cod_ag`,`nom_ag`,`prénom_ag`,`num_télé_ag`,`lib_structure`,`fonction`) VALUES('$matc', '$name', '$prénom', '$num' , '$mail')");

// On se déconnecte de MySQL
mysql_close();
}
?>
Configuration: Windows XP
Firefox 3.0.10

24 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

La discussion porte sur la validation d'un formulaire d'inscription en PHP, avec une logique conditionnelle en cascade qui vérifie d'abord l'ensemble des champs, puis chacun individuellement. Le code mêle vérifications côté serveur et affichages HTML, et l'on évoque l'usage de mysql_real_escape_string et htmlspecialchars ainsi que des validations centralisées et des messages d'erreur plus clairs. Plusieurs contributeurs recommandent une architecture plus simple pour éviter les blocs imbriqués, vérifier les champs une seule fois et faciliter l'affichage des messages lorsque nécessaire. En parallèle, des conseils suggèrent d'améliorer l'organisation du code PHP/HTML, de clarifier les champs obligatoires et d'utiliser une validation progressive pour une expérience utilisateur fiable.

Bobot (l’IA à votre service)
  1. c'est une interface de Help Desk , le matricule des utilisateur de mon site ! et le code ne marche pas :(
    1. oula merci d'utiliser les petites balises code pour afficher ton script c'est bcp plus facile pour nous...
      1. j'ai pas compris , vous pouvez m'aider donc ? vous avez compris ?
    2. frabchement non j'ai pas tout compris.. lol !

      deja en php le et (and) c'est comme ça &&

      le ou (or) c'est comme ca ||

      et pour verifier l'existence d'une variable utilise isset
      1. oui je sais, mais c pas ça le problème , moi j'ai des défécultés qd je mélange entre le php et le html , il m'affiche plusieurs fois les memes formulaires( à chaque fois qu'il teste) donc mon problème est comment organiser les if et les else ( le langage C ) !! merci comme meme
        1. langage C ?
          la c'est plutot php/mysql il me semble
          pour verifier si tes champs sont remplis tu peut te servir de on submit dans ton form et faire la verif en javascript

          si tous les champs sont remplis tes données sont envoyées en post a ta page de traitement sinon ca bloque.
          et sur ta page de traitement suivant ce que tu veut faire tu met tes conditions.
          evite egalement de mettre des accents dans les name de tes champs
          1. oui mais le php est basé sur le C non !! vous pouvez m'expliquer plus consernant le javascript je sais où je dois l'utiliser? à vrai dire je veux faire comme lorsque on veut créer un compte yahoo ou hotmail , si on rempli pas correctement les champs , ils nous affichent des msg d'erreur....
            1. svp , vous savez pas qd il me dit que l'erreur est à la derniere ligne?!
              1. voici un modele sur lesquel tu peut te baser, attention je te fait ca rapidement, c'est a verifier
                entre <head> ett </head> place ce code

                script type="text/javascript" src="fonction.js"></script> <!-- chemin de ton fichier javascript qui contient la fonction verif()-->


                ton formulaire

                form method="post" action="essay.php" onsubmit="return verif();">
                Matricule : *
                <input type="text" name="mat"><br> Cette information est obligatoire !
                Nom :
                <input type="text" name="nom" id="nom">
                <br>Prénom :
                <input type="text" name="prenom" id="prenom" ><br>
                <br>Numéro téléphone : *
                <input type="text" name="num_tel" id="num_tel"><br> Cette information est obligatoire !
                <br>Adresse-mail : *
                <input type="text" name="mail" id="mail"><br> Cette information est obligatoire !
                <br>Structure : *
                <input type="text" name="structure" id="structure"><br> Cette information est obligatoire !
                <br>Fonction :
                <input type="text" name="fonction" id="fonction"><br>
                </p>
                <input type="submit" name="submit" value="envoyer"> 


                dans un fichier a part que tu appelera fonction.js

                function verif()
                {
                var err=''; //variable qui indique l'etat d'erreur ici  vide
                
                   if(document.getElementById("nom").value==""
                    {
                    err='Vous n\'avez ps saisi de nom\r\n';
                     }
                     elseif(document.getElementById("prenom").value==""
                    {
                    err=err+ 'Vous n\'avez ps saisi de prenom\r\n';
                     }
                elseif(document.getElementById("num_tel").value==""
                    {
                    err=err+ 'Vous n\'avez ps saisi de telephone\r\n';
                     }
                //..et ainsi de suite pour chaque champs,tu peut aussi verifier la validité de l'adresse mail
                      else
                     {
                    var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
                    var adr=document.getElementById("mail").value;
                      if(reg.test(adr)!=true) 
                   err= err + adr +'n\est pas une adresse valide \r\n'; 
                
                      }
                
                //mlaintenant on verifie la valeur de err
                  if(err=='')
                  {
                  return true; //c'est bon on envoie les valeurs
                  }
                  else
                  {
                   return false;
                  alert(err); // on affcihe toutes les erreurs rencontrées
                  }
                }
                


                et il ne te reste plus qu'a faire tes requetes dans ta pages essay.php

                <?PHP
                if (isset($nom)) {$_post("nom");} else {$nom='';} // on verifie que $_post nom en php, un peu inutile ici car on a deja verifie avant en javascript, mais on sait jamais si tu tombe sur un pc ou le javacscript est desactive.. lol !
                //et tu fait pareil avec toutes tes valeurs post
                
                //ensuite ta requete d'insertion de modif ou autre traitement que tu souhaite faire
                //et voila..
                ?>
                1. bonjour , merci beaucoup mais moi j'ai aucune idée sur le javascript et le fichier à part je dois le nommer .php ??
                  1. je ne sais pas pourquoi tu complique les choses?
                    pourquoi tu ne vérifie pas tes champs une seule fois si il y a un champ qui est vide tu lui affiche le formulaire en lui écrivant un msg :"vous n'avez pas bien remplie votre formulaire"
                    sa devient plus simple
                    1. svp ça ne marche pas j'ai pas rempli les champs et il m'a rien pas affiché !! je ss perdu
                      1. mais biensûr si tu n'a pas mi le code html,comment il va t'afficher la page

                        en plus on ne peut rien te dire,si on ne voit pas le code!!!
                        1. s'il vous plait , expliquez moi plus , je dois mettre le code html ds le fichier "fonction.js" ou quoi ? puisque je connais pas le javascript !! je dois remettre cette application la fin du mois et j'ai pas pu avancer !!
                          1. le code est écrit ds mon premier msg , il marche pas mais celui qui me l'a envoyé le monsieur qui n'affiche pas les msgs d'erreur c pas le mien , moi j'ai pas utilisé le javascript .
                            1. c'est pour tant simple .. lol
                              ton formulaire dans une page html le javascript dans un fichier javascript et tes requetes php dans un fichier php...
                              tu l'a essyé mon code au moins ?
                              1. si je te crois, mais verifie que tu n'a pas d'erreur javascript avec la console (si tu est sous firefox)

                                ce code fonctionne c'est une chose de sure ;-)
                                1. oui j'ai le firefox , et dsl mais j'ai mis le code php ds un fichier tous seul ...
                                  • 1
                                  • 2