[PHP-RESOLU] formulaire avec réaffichage problématique

formulaire avec réaffichage problématique [PHP-RESOLU] - PHP - Programmation

Marsh Posté le 08-09-2003 à 16:41:10    

Hello,
 
Problème qui se pose principalement en local, mais la question est d'ordre plus général.
 
J'ai un form avec une 50aine de champs. Je voudrais simplement effectuer un contrôle sur certaines entrées (puis insertion dans MySql, mais les soucis arrivent avant) avec réaffichage dans le form en cas d'erreur de saisie.
 
Système très manuel, qui me semble basique au possible.
 
Un champ caché pour vérifier s'il y a déjà eu envoi, si oui contrôle. (If $_POST["add"==1]
 
Pour les 50 variables, je fais toujours

Code :
  1. If $POST["add"]==1
  2. {
  3. $nom=$_POST["nom"];
  4. //(plus pratique car réutilisation en INSERT UPDATE DELETE)
  5. //+ les contrôles pour les champs obligatoires
  6. If ($nom=="" )
  7. {echo "vous devez remplir le champ nom";
  8. $add=0;
  9. }
  10. ...
  11. }


 
Dans les champs,  
<input type="text" name="nom" value="<?echo $nom?>" />
 
Le problème, c'est qu'en local, le chargement de la page ne se fait plus au bout d'un certain nombre de champs (une 10aine=ok, j'en rajoute un il rame comme pas possible pendant un temps fou, sans message d'erreur, mais rien ne s'affiche).
 
J'ai essayé sur un chtit compte lycos, le formulaire s'affiche (mais au bout d'au moins 7-8 sec, je ne sais pas si c'est dû à la lenteur de l'hébergeur ou à ma manière de faire).
 
-> éventuels réglages à modifier dans mon php.ini  (!=script_timeout, j'ai essayé)??
-> ma manière de faire est foireuse ??
 
Sachant que si je ne mets pas de value=<?echo $val?> dans le formulaire, ya pas de problème (mais plus de réaffichage !)...


Message édité par deliriumtremens le 23-09-2003 à 19:30:23
Reply

Marsh Posté le 08-09-2003 à 16:41:10   

Reply

Marsh Posté le 08-09-2003 à 16:46:38    

T'as essayé de faire les contrôles en JavaScript, aussi ? OK, tout le monde active pas JS m'enfin c'est déjà une connec au serveur d'économisée.
Sinon en PHP, plutôt que de faire des =="" t'as la fonction empty() (cf http://www.php.net/manual/fr/function.empty.php ) et de manière générale tout ce qui concerne les opérations sur variables ( http://www.php.net/manual/fr/ref.variables.php ). Mais je vois pas vraiment d'où peut venir ton problème. Déjà, est-ce que tu peux pas fractionner ton formulaire sur plusieurs pages ? Passke 50 champs c'est un peu lourd...


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 08-09-2003 à 17:01:10    

Alors
 
Pour les contrôles js : j'y ai songé, mais je n'ai qu'environ 6 champs obligatoires et assez évidents, donc je me suis permis de les sauter (il me faut de toutes façons rajouter le contrôle  côté serveur).
 
Je faisais un truc du genre en ASP, 1 seul form avec une 80aine de champs (affichés en 4 pages pour la propreté), c'était rapide et sans problème... J'ai donc juste l'impression que je dois me planter en essayant d'utiliser la même méthode.
 
Sinon, je me disais qu'il ramait parce que :
 
les variables sont définies "si $add==1"
 
Donc au moment de l'ouverture du formulaire d'INSERT, avec les value="<? echo $val?>", on a toutes une série de $val qui ne sont pas définies (puisque $add=0).
 
->pour le empty(), ça ferait un poil plus propre, je vais m'y mettre.
 
Mais bon, le problème se situe AVANT tout contrôle, au moment de l'affichage du form vide, c'est ça qui me gêne un peu...  
En affichant la source, j'ai un code normal, mais qui s'arrête après quelques lignes...  
 
Merci déjà.


Message édité par deliriumtremens le 08-09-2003 à 17:02:49
Reply

Marsh Posté le 08-09-2003 à 17:10:09    

DeliriumTremens a écrit :


Mais bon, le problème se situe AVANT tout contrôle, au moment de l'affichage du form vide, c'est ça qui me gêne un peu...  
En affichant la source, j'ai un code normal, mais qui s'arrête après quelques lignes...  


Ah ouais, on voit que tu viens de l'ASP rien qu'en matant la première ligne de ton code [:ddr555] Vérifie que ça soit pas ça qui plante, déjà [:spamafote]
Après... c'est assez bizarre comme comportement, j'vois pas bien d'où ça pourrait v'nir :/


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 08-09-2003 à 17:16:59    

Oh la remarque mesquine :cry:  
 
Le problème, c'est que j'ai fait ça pour un autre formulaire, avec php, dans le cadre du même projet. Il n'y avait que 13 champs, et mon système fonctionne sans problème du début à la fin (contrôles, affichage, réaffichage, mod, del, ins dans MySql).
 
Pas de quoi crier au génie, j'en suis conscient, mais disons que je ne suis pas "complètement" paumé dans la chose, et c'est vraiment avec l'augmentation du nbre de variables que tout foirasse et que j'ébulitionne en vain.


Message édité par deliriumtremens le 08-09-2003 à 17:20:34
Reply

Marsh Posté le 22-09-2003 à 08:09:03    

Dans ma grande bonté, tu peux me montrer ton code en message privé, je regarderai ce qui va pas :o  
 
Enfin vu la date de ton topic, tu a peut etre deja trouvé la solution au probleme? :)

Reply

Marsh Posté le 22-09-2003 à 08:28:24    

Citation :

T'as essayé de faire les contrôles en JavaScript, aussi ? OK, tout le monde active pas JS m'enfin c'est déjà une connec au serveur d'économisée.


 
Ca c'est mal. Il faut toujours valider avec PHP. TOUJOURS.


Message édité par impulse le 22-09-2003 à 08:29:35
Reply

Marsh Posté le 23-09-2003 à 19:29:53    

aspegic500mg a écrit :

Dans ma grande bonté, tu peux me montrer ton code en message privé, je regarderai ce qui va pas :o  
 
Enfin vu la date de ton topic, tu a peut etre deja trouvé la solution au probleme? :)  


 
Eh oui, en effet, j'ai trouvé la solution, merci de l'offre quand même.
 
C'était un problème de variables non initialisées... Comme je n'avais activé que les erreurs et non les "notices", aucune faute n'apparaissait.  
 
Me suis donc fait une petite fonction pour donner une valeur par défaut à mes variables, et la chose fut jouée.

Reply

Sujets relatifs:

Leave a Replay

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