Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

17 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

probleme de validation de formulaire

 
n°13842
the Grim R​eaper
Nerdz Misogyne For Life :d
Profil : Fossile
Posté le 23-06-2005 à 10:08:49  profilanswer
 

je realise un site pour un intranet et j'ai un ptit soucis, j'ai developper sous xp pro sp2 avec easyphp :ange:  
 
et tout marche nickel, et depuis que j'ai mis le tout sur le serveur sous win 2003 j'ai plein de problemes :(
 
j'en ai resolu la plus grosse partie mais il me reste le teste de validation qui pose probleme  :sarcastic:  
 

Citation :

<?php
//on se connect a mysql
include('Connection/connection.php');
 
echo'
<tr><td> Fournisseur :</td><td><input type="text" name="fournisseur" size="30"></td></tr>
<tr><td> Adresse fournisseur :</td><td><input type="text" name="adr_fourni" size="30"></td></tr>
<tr><td> Téléphone fournisseur :</td><td><input type="text" name="tel_fourni" size="10"></td></tr>
<tr><td> Fax fournisseur :</td><td><input type="text" name="fax_fourni" size="10"></td></tr>
<tr><td> Site internet :</td><td><input type="text" name="net" size="30"></td></tr>
<tr><td> Correspondant fournisseur :</td><td><input type="text" name="cor_fourni" size="30"></td></tr>
<tr><td> Numéro de marcher :</td><td><input type="text" name="num_marcher" size="10"></td></tr>
</table>
<br><input type="submit" value="Ajouter" name="ajouter">';
?>
<?php
if(  $_POST['ajouter'] == "Ajouter"  )
 {
 if( empty($_POST['fournisseur']) || empty($_POST['adr_fourni']) || empty($_POST['tel_fourni']) )  
  {  
  print("<center><br>Vous n'avez pas entré de donnée dans l'un des champs prevus</center>" );  
  exit();  
  }  
 else {
  //on crée la requete sql
  $sql = 'INSERT INTO base_fourni ( id_fourni, fournisseur, adr_fourni, tel_fourni, fax_fourni, net, cor_fourni, num_marcher)
   VALUE ("","'.$_POST['fournisseur'].'", "'.$_POST['adr_fourni'].'", "'.$_POST['tel_fourni'].'", "'.$_POST['fax_fourni'].'"
   , "'.$_POST['net'].'", "'.$_POST['cor_fourni'].'", "'.$_POST['num_marcher'].'" )';
 
  //on evoie la requete
  $req = mysql_query( $sql) or die('ma requête'.$sql.'est defectueuse'.mysql_error());
 
  //on confirme l'ajout
  echo '<META http-equiv="refresh" content="0;index.php?page=transition/ajout">';
  }
 }
?>


le probleme est le meme pour tous les formulaires :(
le message d'erreur :

Citation :

Notice: Undefined index: ajouter in d:\..\ajouter_fourni.php on line 22


j'ai aussi ce probleme pour mes checkbox  :sweat:  
 
si vous avez une idée ca serai super simpas  :jap:


---------------
Président officiel et inconditionnel de la team des celibataires (date du 11/05/2007) :d Poupée Vaudou officielle de la Cool Team :ouep:
Recruteur de la Team des Nerdz  
Tout ce que tu peux pas faire devant ton PC et ton ecran, le fait pas ! © de moi
n°13844
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 23-06-2005 à 11:22:48  profilanswer
 

- Je remarque que tu n'as pas de balises <form> ??
 
- Pour ton code :

Code :
  1. if( empty($_POST['fournisseur']) || empty($_POST['adr_fourni']) || empty($_POST['tel_fourni'])


Je mettrais plutôt :

Code :
  1. if( !isset($_POST['fournisseur']) && !isset($_POST['adr_fourni']) && !isset($_POST['tel_fourni'])


 
- Tout à la fin de ton code, tu envoies un META, mais tu as déjà 'écris' un tableau html plus haut dans ton code...

n°13845
the Grim R​eaper
Nerdz Misogyne For Life :d
Profil : Fossile
Posté le 23-06-2005 à 11:35:36  profilanswer
 

ba la balise form me mettait une erreur :spamafote: et en la supprimant ca marche, va savoir ...
 
j'ai essayer de la remttre pour le serveur mais ca a rien changer :(
 
jfais le changement merci :jap:
 
si t'as d'autres amelio a me donner jsuis aprtant :d


---------------
Président officiel et inconditionnel de la team des celibataires (date du 11/05/2007) :d Poupée Vaudou officielle de la Cool Team :ouep:
Recruteur de la Team des Nerdz  
Tout ce que tu peux pas faire devant ton PC et ton ecran, le fait pas ! © de moi
n°13846
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 23-06-2005 à 12:15:48  profilanswer
 

Tu as forcément besoin d'une balise form afin d'envoyer tes données de formulaires au serveur...

n°13866
Binabik
Profil : Jeune recrue
Posté le 24-06-2005 à 19:20:13  profilanswer
 

déjà comme il a été dit met un <form action="ta_page"></form>
 
ensuite il y a une erreur la dedans:

Citation :

$sql = 'INSERT INTO base_fourni ( id_fourni, fournisseur, adr_fourni, tel_fourni, fax_fourni, net, cor_fourni, num_marcher) VALUE ("","'.$_POST['fournisseur'].'", "'.$_POST['adr_fourni'].'", "'.$_POST['tel_fourni'].'", "'.$_POST['fax_fourni'].'" , "'.$_POST['net'].'", "'.$_POST['cor_fourni'].'", "'.$_POST['num_marcher'].'" )';


 
dans ta requete sql quoi. en effet avant le point de concaténation tu ferme le guillement ' mais tu en remet un au milieu . genre : $_POST['fax_fourni'].
 
De plus tes champs text html ne sont pas sécurisé contre le htm.
 
La meilleure sollution pour corriger les deux problèmes d'un coups, marque ça avant la requete:
 

Citation :

$fournisseur = htmlentities($_POST['fournisseur']);
//etc pour les autres variables


 
comme ça dans ta requete sql tu utilise $fournisseur plutot que $_POST['fournisseur']
Vla j'espère avoir été clair ^^

n°14014
snarky
Profil : Membre
Posté le 02-07-2005 à 03:28:53  profilanswer
 

Citation :

déjà comme il a été dit met un <form method="post" action="ta_page"></form>
 
ensuite il y a une erreur la dedans:
[quote]$sql = 'INSERT INTO base_fourni ( id_fourni, fournisseur, adr_fourni, tel_fourni, fax_fourni, net, cor_fourni, num_marcher) VALUE ("","'.$_POST['fournisseur'].'", "'.$_POST['adr_fourni'].'", "'.$_POST['tel_fourni'].'", "'.$_POST['fax_fourni'].'" , "'.$_POST['net'].'", "'.$_POST['cor_fourni'].'", "'.$_POST['num_marcher'].'" )';


 
dans ta requete sql quoi. en effet avant le point de concaténation tu ferme le guillement ' mais tu en remet un au milieu . genre : $_POST['fax_fourni'].
 
De plus tes champs text html ne sont pas sécurisé contre le htm.
 
La meilleure sollution pour corriger les deux problèmes d'un coups, marque ça avant la requete:
 

Citation :

$fournisseur = htmlentities($_POST['fournisseur']);
//etc pour les autres variables


 
comme ça dans ta requete sql tu utilise $fournisseur plutot que $_POST['fournisseur']
Vla j'espère avoir été clair ^^[/quote]


Message édité par snarky le 02-07-2005 à 03:29:30
n°14081
sky_strike​r
Force et honneur
Profil : Membre
Posté le 07-07-2005 à 16:12:05  profilanswer
 

the Grim Reaper a écrit :

je realise un site pour un intranet et j'ai un ptit soucis, j'ai developper sous xp pro sp2 avec easyphp :ange:  
 
et tout marche nickel, et depuis que j'ai mis le tout sur le serveur sous win 2003 j'ai plein de problemes :(
 
j'en ai resolu la plus grosse partie mais il me reste le teste de validation qui pose probleme  :sarcastic:  
 

Citation :

<?php
//on se connect a mysql
include('Connection/connection.php');
 
echo'
<tr><td> Fournisseur :</td><td><input type="text" name="fournisseur" size="30"></td></tr>
<tr><td> Adresse fournisseur :</td><td><input type="text" name="adr_fourni" size="30"></td></tr>
<tr><td> Téléphone fournisseur :</td><td><input type="text" name="tel_fourni" size="10"></td></tr>
<tr><td> Fax fournisseur :</td><td><input type="text" name="fax_fourni" size="10"></td></tr>
<tr><td> Site internet :</td><td><input type="text" name="net" size="30"></td></tr>
<tr><td> Correspondant fournisseur :</td><td><input type="text" name="cor_fourni" size="30"></td></tr>
<tr><td> Numéro de marcher :</td><td><input type="text" name="num_marcher" size="10"></td></tr>
</table>
<br><input type="submit" value="Ajouter" name="ajouter">';
?>
<?php
if(  $_POST['ajouter'] == "Ajouter"  )
 {
 if( empty($_POST['fournisseur']) || empty($_POST['adr_fourni']) || empty($_POST['tel_fourni']) )  
  {  
  print("<center><br>Vous n'avez pas entré de donnée dans l'un des champs prevus</center>" );  
  exit();  
  }  
 else {
  //on crée la requete sql
  $sql = 'INSERT INTO base_fourni ( id_fourni, fournisseur, adr_fourni, tel_fourni, fax_fourni, net, cor_fourni, num_marcher)
   VALUE ("","'.$_POST['fournisseur'].'", "'.$_POST['adr_fourni'].'", "'.$_POST['tel_fourni'].'", "'.$_POST['fax_fourni'].'"
   , "'.$_POST['net'].'", "'.$_POST['cor_fourni'].'", "'.$_POST['num_marcher'].'" )';
 
  //on evoie la requete
  $req = mysql_query( $sql) or die('ma requête'.$sql.'est defectueuse'.mysql_error());
 
  //on confirme l'ajout
  echo '<META http-equiv="refresh" content="0;index.php?page=transition/ajout">';
  }
 }
?>


le probleme est le meme pour tous les formulaires :(
le message d'erreur :

Citation :

Notice: Undefined index: ajouter in d:\..\ajouter_fourni.php on line 22


j'ai aussi ce probleme pour mes checkbox  :sweat:  
 
si vous avez une idée ca serai super simpas  :jap:


 
remplaces
 
if(  $_POST['ajouter'] == "Ajouter"  )  
 
par  
 
if (isset($_POST['ajouter']) && $_POST['ajouter'] == "Ajouter" )
 
ça marchera mieux je pense  
 
et ils ont raison faut mettre une balise <form> avec method="post" :-)


Aller à :
Ajouter une réponse