[PHP] Vérifier si les champs d'un form sont remplis...pb (code inside)

Vérifier si les champs d'un form sont remplis...pb (code inside) [PHP] - Programmation

Marsh Posté le 21-03-2002 à 14:26:58    

Bon ben le pb c que j'ai un formulaire d'inscription qui se trouve sur une page inscriptions.php, pour l'afficher je passe par le biais de pseudo frame et donc le lien est le suivant "clan.php?cat=inscriptions" là g un include de la page d'inscription. Jusque là no pb ca rulez. Non le pb c pour vérifier si les champs du formulaire sont bien remplis(enfin certains champs sont plus important que d'autre so...)
Pour se faire j'utilise une fonction filled_out dont voici le code:
 
function filled_out ($nom, $passwd, $conf_pass, $mail, $ville, $motivations)
    {
        if (!isset ($nom) || $nom == "" ){
           return 0;
       }
 
 
        if (!isset ($passwd) || $pass == "" ){
            return 0;
        }
 
 
        if (!isset ($conf_pass) || $conf_pass == "" ){
            return 0;
        }
 
        if (!isset ($ville) || $ville == "" ){
            return 0;
        }
 
        if (!isset ($mail) || $mail == "" ){
            return 0;
        }
 
        if (!isset ($motivations) || $motivations == "" ){
            return 0;
        }
        return 1;
    }
 
Ds ma page principale je fais ça :
 
if($insc->filled_out($nom, $passwd, $conf_pass, $mail, $ville, $motivations)){
                           $insc->inscript($nom, $passwd, $conf_pass, $mail, $site, $icq, $armes, $maps, $ville, $motivations, $commentaires);
                       }
                       else{
                           echo "<script language=javascript>\n";
                           echo "alert(\"Veuillez remplir tous les champs svp.\" );\n";
                           echo "history.back();\n";
                           echo "</script>";
                       }
 
Donc en toute logique il devrait me mettre un message uniquement ds le cas où un des champs spécifiés plus haut n'est pas rempli non ??
Et ben c la que le bug se trouve !!
 
So si qlq1 a réussi à saisir tout ce que j'ai dit et qu'il a une solution et ben je suis preneur :)
 
@+


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 21-03-2002 à 14:26:58   

Reply

Marsh Posté le 21-03-2002 à 16:31:57    

Bon je vais faire plus simple car je viens de relire le post et c po tres clair tout ca :p
 
Alors disons que j'ai un formulaire "inscriptions.php", une page principale "clan.php". Sur cette page principale j'utilise des pseudo frame donc pour afficher mon formulaire j'ai le lien <a href="clan.php?inscriptions">Inscriptions</a>
 
Là j'ai bien mon formulaire qui s'affiche no souci.
 
Pour gérer le traitement des données du dit formulaire, j'utilise une class Inscription, qui contient 2 méthodes, inscript et filled_out. La première est chargée de traiter les données, c à d rentrer les infos ds une base MySQL. La deuxième méthode est censer vérifier que certains qui sont obligatoires, soient remplis par l'utilisateur.
 
Quand je clique sur le bouton "Submit" je crée une instance de la class Inscription, j'utilise la fonction filled_out pour vérifier si les champs sont biens remplis puis je traite les données avec inscript.
 
Comme j'utilise des pseudo frame, ces 2 actoins s'executent sur ma page principale, seulement le pb est que la fonction filled_out bug et je me retrouve avec un message qui me dit que je n'ai pas remplis les champs du formulaire.(cf code)
Je fais un if(filled_out...) et ds le else j'ai ma fonction inscript pour traiter les données. Donc si les champs sont bien remplis je devrais soumettre les données pour traitement non ??
 
Bon voici le code des fonctions si vous trouvez des erreurs plizz :)
 
@+
 
CODE
---------------------
ds la page principale j'ai ça:
 
   <?
   include ($header);
   include($page);
   switch($act)
   {
       case "inser"  : $admin_news = new news;
                       $admin_news->inser($titre,$contenu,$auteur,$mail,$site);
                       echo "<meta http-equiv=\"refresh\" content=\"0; url=http://clanwto.free.fr/clan.php?cat=a1\">\n";
            break;
 
       case "suppr"  : $admin_news= new news;
                       $admin_news->efface($id);
                      echo "<meta http-equiv=\"refresh\" content=\"0; url=http://clanwto.free.fr/clan.php?cat=a1&menu=del\">\n";
            break;
             
       case "submit" : $insc = new Inscriptions;
                       if($insc->filled_out($nom, $passwd, $conf_pass, $mail, $ville, $motivations)){
                           $insc->inscript($nom, $passwd, $conf_pass, $mail, $site, $icq, $armes, $maps, $ville, $motivations, $commentaires);
                       }
                       else{
                           echo "<script language=javascript>\n";
                           echo "alert(\"Veuillez remplir tous les champs svp.\" );\n";
                           echo "history.back();\n";
                           echo "</script>";
                       }
            break;
   }
   include ($footer);
   ?>
 
Les  fonctions de la class Inscription:
class Inscriptions{
 
    function dbconnect()
    {
        global $host;
        global $user;
        global $pass;
        global $bdd;
 
        // Connexion à la Base de données
        $id_connect = mysql_connect($host, $user, $pass);
        if(!$id_connect)
         echo 'Connexion impossible !<br>' ;
 
        // Selection de la base de données
        $my_db = mysql_select_db($bdd);
 
        if(!$my_db)
         echo 'Sélection de la base impossible' ;
    }
 
 
    function filled_out ($nom, $passwd, $conf_pass, $mail, $ville, $motivations)
    {
        if (!isset ($nom) || $nom == "" ){
           return 0;
       }
 
 
        if (!isset ($passwd) || $pass == "" ){
            return 0;
        }
 
 
        if (!isset ($conf_pass) || $conf_pass == "" ){
            return 0;
        }
 
        if (!isset ($ville) || $ville == "" ){
            return 0;
        }
 
        if (!isset ($mail) || $mail == "" ){
            return 0;
        }
 
        if (!isset ($motivations) || $motivations == "" ){
            return 0;
        }
        return 1;
    }
     
     
    function inscript ($nom, $pass, $conf_pass, $mail, $site, $icq, $armes, $maps, $ville ,$motivations, $commentaires)
    {
        $pass = md5 ($pass);
        $conf_pass = md5 ($conf_pass);
 
        // connexion à la base de données
        dbconnect ();
 
        $sql = "SELECT * FROM membres WHERE m_pseudo = '$nom'";
        $result = mysql_query($sql);
 
        $ligne=mysql_fetch_array($result);
 
        if($ligne["m_pseudo"] == $nom){
            //Le pseudo existe déjà
            echo "<script language=javascript>\n";
            echo "alert(\"Le pseudo existe déjà. Veuillez saisir un nouveau pseudo svp.\" );\n";
            echo "</script>";
         
        }
        else{
            $motivations = nl2br ($motivations);
            $commentaires = nl2br ($commentaires);
            $temps  = date("Y-m-d" );
            $nom    = htmlspecialchars ($nom);
            $mail   = htmlspecialchars ($mail);
            $site   = htmlspecialchars ($site);
            $icq    = htmlspecialchars ($icq);
            $armes  = htmlspecialchars ($armes);
            $maps   = htmlspecialchars ($maps);
            $ville  = htmlspecialchars ($ville);
            $config = htmlspecialchars ($config);
 
            $sql  = "Insert into membres (m_pseudo, m_pass, m_mail, m_icq, m_date_insc, m_ville, m_config, m_commentaires, m_motivations)";
            $sql .= "values ('$nom', '$pass', '$mail', '$icq', '$temps', '$ville', '$config', '$commentaires', '$motivations';)";
             
            $result = mysql_query ($sql);
 
            if($result==false){
                mysql_close();
                echo "Problème";
                return 1;
            }
 
            else {
                mysql_close();
                return 0;
            }
        }
   }
 
}


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 21-03-2002 à 16:44:39    

C'est bô ! Mais en JavaScript, c'est beaucoup plus simple. Seulment c'est vrai que ça s'exécute côté client et que le client est maître chez lui.

Reply

Marsh Posté le 21-03-2002 à 16:54:35    

Le truc c que je remplisse tt les champs ou po et ben ils s'en fout et me renvoie le msg comme koi je n'ai po rempli les champs et ce même apres les avoir re-remplis a nouvo !!


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 21-03-2002 à 17:02:11    

pourkoi tu mettrai pas return false ou true selon le cas ? comme ça dans la condition ça marcherai je pense, non ?  :hello:  
sinon on peut savoir pour quel jeu c ? et si on peut voir à koi ressemble ton site ?

Reply

Marsh Posté le 21-03-2002 à 17:11:24    

salut,
 
j'ai regardé dans ce que je faisais
 
j'ai trouvé çà
 
if ($submit) {
 if (empty($type_vente)) {
  print_Erreur($dieTypeVente);
 }
 else if (empty($marque)) {
  print_Erreur($dieMarque);
 }
 else if (empty($modele)) {
  print_Erreur($dieModele);
 }
 else if (empty($annee)) {
  print_Erreur($dieAnnee);
 }
 else if (empty($cylindree)) {
  print_Erreur($dieCylindree);
 }
 else if (empty($kilometrage)) {
  print_Erreur($dieKilometrage);
 }
 else if (empty($couleur)) {
  print_Erreur($dieCouleur);
 }
 else if (empty($prix) || empty($prix_euro) ) {
  print_Erreur($diePrix);
 }
.......
 
dans une page affichant un formulaire avec un bouton nommé "submit" d'où le $submit en premier test.
 
si çà peut t'aider ;)

Reply

Marsh Posté le 21-03-2002 à 17:12:48    

ah ah le petit curieux ;) Ben c pour mon futur clan CS :p sorry pour ceux qui trouvent que ce jeu est dépassé mais qu'est-ce que vous voulez j'adore :D
 
Sinon pour le false ou true c a kel nivo ? ds la page principale ?  
 
Allez voilà l'adresse mais bon ya encore aucun graphisme, la charte graphique n'est pas figée et peu encore bouger :p et pi ya po encore le logo :lol:
www.clan-wto.fr.st après je te laisse chercher là ou tu peux avoir le reste, mais je pense que c po trop dur de trouver vu le code que j'ai mis ci-dessus ;)


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 21-03-2002 à 17:16:33    

Merci M@nou je vais voir ça :)


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 21-03-2002 à 17:28:01    

Waaaaooouuuuuuuhhhhhhh M@nouuuuuu ca roxxxxx mortel merci :) :) :) :) :) :)
 
C cool  :jap:  :jap:


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 21-03-2002 à 19:04:29    

dirakocha a écrit a écrit :

ah ah le petit curieux ;) Ben c pour mon futur clan CS :p sorry pour ceux qui trouvent que ce jeu est dépassé mais qu'est-ce que vous voulez j'adore :D
 
Sinon pour le false ou true c a kel nivo ? ds la page principale ?  
 
Allez voilà l'adresse mais bon ya encore aucun graphisme, la charte graphique n'est pas figée et peu encore bouger :p et pi ya po encore le logo :lol:
www.clan-wto.fr.st après je te laisse chercher là ou tu peux avoir le reste, mais je pense que c po trop dur de trouver vu le code que j'ai mis ci-dessus ;)  




 
En fait je demandais ça car je suis entrain moi aussi de faire le site de mon clan CS  [:yes papa !!!]  [:yes papa !!!]  
Il est en construction encore, je fais la partie membre en ce moment.
URL : http://lesf.jeanb.d2g.com (hébergé ché moi donc c un peu lent)

Reply

Marsh Posté le 21-03-2002 à 19:04:29   

Reply

Marsh Posté le 21-03-2002 à 19:06:24    

dirakocha a écrit a écrit :

 
function filled_out ($nom, $passwd, $conf_pass, $mail, $ville, $motivations)
    {
        if (!isset ($nom) || $nom == "" ){
           return false;
       }
 
 
        if (!isset ($passwd) || $pass == "" ){
            return false;
        }
 
 
        if (!isset ($conf_pass) || $conf_pass == "" ){
            return false;
        }
 
        if (!isset ($ville) || $ville == "" ){
            return false;
        }
 
        if (!isset ($mail) || $mail == "" ){
            return false;
        }
 
        if (!isset ($motivations) || $motivations == "" ){
            return false;
        }
        return true;
    }
 
Ds ma page principale je fais ça :
 
if($insc->filled_out($nom, $passwd, $conf_pass, $mail, $ville, $motivations)){
                           $insc->inscript($nom, $passwd, $conf_pass, $mail, $site, $icq, $armes, $maps, $ville, $motivations, $commentaires);
                       }
                       else{
                           echo "<script language=javascript>\n";
                           echo "alert(\"Veuillez remplir tous les champs svp.\" );\n";
                           echo "history.back();\n";
                           echo "</script>";
                       }
 
Donc en toute logique il devrait me mettre un message uniquement ds le cas où un des champs spécifiés plus haut n'est pas rempli non ??
Et ben c la que le bug se trouve !!
 
So si qlq1 a réussi à saisir tout ce que j'ai dit et qu'il a une solution et ben je suis preneur :)
 
@+  




 
voila à koi je pensais

Reply

Marsh Posté le 21-03-2002 à 22:42:45    

moi je penserais à ça :
 
function filled_out ($Form)
  while (list($FieldName,$FieldValue) = each($Form)) {
  if (!isset($FieldValue) || $FieldValue == '';) return FALSE;
  else return TRUE;
}
 
tu passes en argument la tableau $HTTP_POST_VARs[], ça devrait le faire non ?

 

[jfdsdjhfuetppo]--Message édité par Sh@rdar--[/jfdsdjhfuetppo]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 23-03-2002 à 19:54:16    

Sh@rdar a écrit a écrit :

moi je penserais à ça :
 
function filled_out ($Form)
  while (list($FieldName,$FieldValue) = each($Form)) {
  if (!isset($FieldValue) || $FieldValue == '';) return FALSE;
  else return TRUE;
}
 
tu passes en argument la tableau $HTTP_POST_VARs[], ça devrait le faire non ?  
 
 




 
Ben en fait c ce que je faisais o départ mais comme ça ne fonctionnait po j'ai laissé tomber mais le truc tout con de M@nou avec le empty() ça fonctionne très bien :) so...
 
Mais merci pour vos réponse les gars, je ne suis po très expérimenté en php mais j'essaie plein de truc pour apprendre ;)
genre le site en php avec pseudo frame + class on aurait pu faire bcp plus basic mais moi j'aime bien faire compliqué :lol:
 
Je@nb >> On pourra peut-être organiser un match ds le futur ;) mais bon comme pour le moment on est que 2 ça va être short :p
 
Allez @+ et encore merci  :jap:


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 23-03-2002 à 20:16:01    

Nous on est 25  :D  :D  :D  
mais on est nul  :D  :D  :D  
J'ai fait ce site pour eux mais surtout pour m'amuser, parce c fou ce kon s'emmerde pdt les vacances  :pt1cable:  :pt1cable:  :pt1cable:

Reply

Marsh Posté le 25-03-2002 à 11:26:38    

lol :lol: :lol: :lol: :lol: :lol: :lol:


---------------
Q.G Tutoriaux ici
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed