Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1186 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] pb controle de formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] pb controle de formulaire

n°1510929
drexlbob
Posté le 05-02-2007 à 14:51:13  profilanswer
 

Bonjour.
J'ai cree une fontion qui me permet de controler la validite d'un formulaire. Maintenant je voudrais rentrer les donnees saisies par l'utilisateur que si ces donnees repondent aux critere de ma fonctions.(controle de larobase dans le mail ...). Commen faire???
Merci.


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
mood
Publicité
Posté le 05-02-2007 à 14:51:13  profilanswer
 

n°1510939
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-02-2007 à 15:03:53  profilanswer
 

Une méthode souvent utilisée consiste à faire retourner true/false à ta fonction de vérification et s'en servir ainsi:

Code :
  1. if ( isValidEmail($adress) ){
  2.   //insertion
  3. }


 
Mais j'ai comme l'impression que cela ne résoudra pas tout ton problème.
hummm je sens

n°1510943
drexlbob
Posté le 05-02-2007 à 15:15:03  profilanswer
 

anapajari a écrit :

Une méthode souvent utilisée consiste à faire retourner true/false à ta fonction de vérification et s'en servir ainsi:

Code :
  1. if ( isValidEmail($adress) ){
  2.   //insertion
  3. }


 
Mais j'ai comme l'impression que cela ne résoudra pas tout ton problème.
hummm je sens


 
c'est vrai ca ne repond pas vraiment a ma question:
 
Donc voila le code ca sera plu simple je pense
 
ca c'est ma fonction :
 
 
function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
  $aroba = strpos($email, '@');
  $dot = strpos($email, '.');
 
      if(empty($nom))
 echo "Vous avez oublie de saisir votre nom <br />";
      if(empty($prenom))
 echo "Vous avez oublie de saisir votre prenom<br />";
      if(empty($login))
 echo "Vous avez oublie de saisir votre login<br / >";
      if(empty($adresse))
 echo "Vous avez oublie de saisir votre adresse<br /";
      if(empty($cp))
 echo "Vous avez oublie de saisir votre code postal<br />";
      if(empty($ville))
 echo "Vous avez oublie de saisir votre ville<br />";
      if (empty($email))
 echo "Vous avez oublie de saisir votre email<br />";
      elseif(!empty($email) && $aroba == '' | $dot == '')
 echo "Mail invalide<br />";
      if(empty($pass) || empty($repass))
 echo "Vous avez oublie de saisir votre pass<br />";
}
 
et ca c'est mon insertion :
 $fill_db = "INSERT INTO user (nom, prenom, login, adresse, cp, ville, email, pass, repass, date) VALUES (\"$nom\", \"$prenom\",\"$login\", \"$adresse\", \"$cp\",\"$ville\",\"$email\", \"$pass\", \"$repass\", \"$date\" )";
 
    $result = mysql_query($fill_db, $link);
    if (!$result)
      die('Requete invalide : ' . mysql_error());
   
le probleme ce que meme si des champs de mon formulaire ne sont pas remplis le formulaire et enregistre dans ma base. Je voudrais ke lon enregistre le formulire que si toute les information ont ete fournies par l'utilisateur. :)  
 
 
 
 
 
 
 


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
n°1510954
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-02-2007 à 15:39:51  profilanswer
 

bin en fait si ça répond totalement à ta question :o
tu fais un return true/false dans check_form et tu mets un if avec ton insert [:spamafote]

n°1510960
drexlbob
Posté le 05-02-2007 à 15:46:26  profilanswer
 

anapajari a écrit :

bin en fait si ça répond totalement à ta question :o
tu fais un return true/false dans check_form et tu mets un if avec ton insert [:spamafote]


OK j'essai de faire comme tu viens de me le dire mais ca ne marche pas pourrai tu mecrire la condition parce ke la je bloque
Merci!!


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
n°1510976
sielfried
Posté le 05-02-2007 à 16:06:19  profilanswer
 

http://fr.php.net/manual/fr/language.functions.php
 
Et aussi (car même si t'as pas balancé tout ton code, je parie que $nom, $prenom et cie proviennent directement du formulaire, sans contrôle) :
http://fr.php.net/mysql_real_escape_string
 
voire mieux :
http://fr.php.net/manual/fr/functi [...] xecute.php (si tu as mysqli)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1510980
drexlbob
Posté le 05-02-2007 à 16:17:11  profilanswer
 

sielfried a écrit :

http://fr.php.net/manual/fr/language.functions.php
 
Et aussi (car même si t'as pas balancé tout ton code, je parie que $nom, $prenom et cie proviennent directement du formulaire, sans contrôle) :
http://fr.php.net/mysql_real_escape_string
 
voire mieux :
http://fr.php.net/manual/fr/functi [...] xecute.php (si tu as mysqli)


Apres avoir lu tes liens ca ne marche tjrs pas (pr http://fr.php.net/mysql_real_escape_string je suis o courant. cvrai que c plus correct) mais sinon je nariv jamais a tomber dans la bonne condition]. je les gere mal.
 
 
Bref quelq'un pourrais -t-il reprendre mon code au dessus et le modifier afin de le faire fonctionner correctement??
Merci!!!


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
n°1510989
sielfried
Posté le 05-02-2007 à 16:30:18  profilanswer
 

Si c'est pas bon, tu retournes false, sinon tu retournes true, y a pas plus basique. Fais voir ce que t'as essayé de faire au moins.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1511033
nycius
Ich liebe dich !
Posté le 05-02-2007 à 17:14:27  profilanswer
 

Code :
  1. function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
  2. {
  3.   $aroba = strpos($email, '@');
  4.   $dot = strpos($email, '.');
  5.     $error == True;
  6.    
  7.       if(empty($nom))
  8.       {
  9.         $error == True;
  10.         echo "Vous avez oublie de saisir votre nom <br />";
  11.       }
  12.       else
  13.         $error == False;
  14.        
  15.        
  16.       if($error == False)
  17.       // On insert
  18.       else
  19.       // On insert pas
  20. }

n°1511088
sielfried
Posté le 05-02-2007 à 19:16:22  profilanswer
 

La requête SQL en tant que telle et les affichages ne devraient pas avoir lieu là-dedans.

Message cité 1 fois
Message édité par sielfried le 05-02-2007 à 19:16:37

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le 05-02-2007 à 19:16:22  profilanswer
 

n°1511257
nycius
Ich liebe dich !
Posté le 06-02-2007 à 10:09:41  profilanswer
 

sielfried a écrit :

La requête SQL en tant que telle et les affichages ne devraient pas avoir lieu là-dedans.


 
Je suis pas sur qu'il veuille se lancer dans le MVC  :ange:

n°1511282
drexlbob
Posté le 06-02-2007 à 11:09:21  profilanswer
 

nycius a écrit :

Code :
  1. function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
  2. {
  3.   $aroba = strpos($email, '@');
  4.   $dot = strpos($email, '.');
  5.     $error == True;
  6.    
  7.       if(empty($nom))
  8.       {
  9.         $error == True;
  10.         echo "Vous avez oublie de saisir votre nom <br />";
  11.       }
  12.       else
  13.         $error == False;
  14.        
  15.        
  16.       if($error == False)
  17.       // On insert
  18.       else
  19.       // On insert pas
  20. }



 
 
Cette exemple de code controle la valeur de retour champs par champs. Moi ce que je veut faire c'est controler que tout les champs ont bien etes rempliset enregister dans la base que si tout les champs sont remplis. je vous envoi ma version qui ne marche pas:
function insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
 
  $fill_db = "INSERT INTO user (nom, prenom, login, adresse, cp, ville, email, pass, repass, date) VALUES (\"$nom\", \"$prenom\",\"$login\", \"$adresse\", \"$cp\",\"$ville\",\"$email\", \"$pass\", \"$repass\", \"$date\" )";
       
      $result = mysql_query($fill_db);
      echo "donnee entreerr";
      if (!$result)
 die('Requete invalide : ' . mysql_error());
     
}
 
 
function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
  $aroba = strpos($email, '@');
  $dot = strpos($email, '.');
 
  $retval = FALSE;
  while ($retval == FALSE)
    {
      if(empty($nom))
 echo "Vous avez oublie de saisir votre nom <br />";
      if(empty($prenom))
 echo "Vous avez oublie de saisir votre prenom<br />";
      if(empty($login))
 echo "Vous avez oublie de saisir votre login<br / >";
      if(empty($adresse))
 echo "Vous avez oublie de saisir votre adresse<br /";
      if(empty($cp))
 echo "Vous avez oublie de saisir votre code postal<br />";
      if(empty($ville))
 echo "Vous avez oublie de saisir votre ville<br />";
      if (empty($email))
 echo "Vous avez oublie de saisir votre email<br />";
      elseif(!empty($email) && $aroba == '' | $dot == '')
 echo "Mail invalide<br />";    
      if(empty($pass) || empty($repass))
 echo "Vous avez oublie de saisir votre pass<br />";
    }
    $retval = TRUE;
  if ($retval == TRUE)
    insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass);
}
 
j'ai aussi essaye a ta maniere ca fait apreil que celle ci. Please HELP!!!!


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
n°1511315
nycius
Ich liebe dich !
Posté le 06-02-2007 à 11:50:16  profilanswer
 

C'est exactement ce que je t'ai mis, regarde et adapte

n°1511340
drexlbob
Posté le 06-02-2007 à 12:31:31  profilanswer
 

nycius a écrit :

C'est exactement ce que je t'ai mis, regarde et adapte


 
Je vien d'adapeter mon code donc dis moi si tu vois un probleme ne tout si je ne saissi aucune valeur dans mes champs ca enregiste une ligne vide dans ma base ou si je saisi juste un champs ca le marquera: Moi je veut que ca enregistre dans la base une fois ke tous les champs ont etes remplis. Merci de ton aide.
 
 
function insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
 
  $fill_db = "INSERT INTO user (nom, prenom, login, adresse, cp, ville, email, pass, repass, date) VALUES (\"$nom\", \"$prenom\",\"$login\", \"$adresse\", \"$cp\",\"$ville\",\"$email\", \"$pass\", \"$repass\", \"$date\" )";
 
 $result = mysql_query($fill_db);
    echo "donnee entreerr";
    if (!$result)
    die('Requete invalide : ' . mysql_error());
 
       
}
 
 
function check_form($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass)
{
  $aroba = strpos($email, '@');
  $dot = strpos($email, '.');
 
 
  $retval = TRUE;
  if(empty($nom))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre nom <br />";
    }
  if(empty($prenom))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre prenom<br />";
    }
  if(empty($login))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre login<br / >";
    }
  if(empty($adresse))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre adresse<br /";
    }
  if(empty($cp))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre code postal<br />";
    }
  if(empty($ville))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre ville<br />";
    }
  if (empty($email))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre email<br />";
    }
  elseif(!empty($email) && $aroba == '' | $dot == '')
    {
      $retval = TRUE;
      echo "Mail invalide<br />";    
    }
  if(empty($pass) && empty($repass))
    {
      $retval = TRUE;
      echo "Vous avez oublie de saisir votre pass<br />";
    }
  $retval = FALSE;
  if ($retval == FALSE)
    insert_in_db($nom, $prenom, $login, $adresse, $cp, $ville, $email, $pass, $repass);
  else
    echo "on insere pas";
 
}
 
 
 


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
n°1511341
drexlbob
Posté le 06-02-2007 à 12:34:38  profilanswer
 

nycius a écrit :

C'est exactement ce que je t'ai mis, regarde et adapte


 C bon ca marche j'ai oublier le else. Merci encore tu dechire


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] pb controle de formulaire

 

Sujets relatifs
[word] incompatibilité macro et formulaire[PHP] FPDF : Comment activer la compression ?
[ PHP ] fonctions mail en localpb avec formulaire dynamique en HTML/Java
[PHP - GD] Extraire une portion d'image[PHP] Problème de Warning
Execution par cron d'un PHP pour créer une page HtmlRecuperer une variable XML via PHP
utiliser un evenement sur un controle créé dynamiquement[ PHP ] Insertion de données dans une base.
Plus de sujets relatifs à : [PHP] pb controle de formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR