|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : mars 2006 Messages : 168 ![]() |
bonjour,
j'ai essayé différentes solutions pour vérifier les variables d'un formulaire, mais rien n'y fait. Je ne comprends pas où est l'erreur, ca a l'air tout simple pourtant : Code :
quand je clique sur envoyer, si je n'ai rempli aucun champ, il est envoyé quand même, mais rien n'est mis dasn la cellule, et idem quand j'envoie après avoir rempli des variables : elles ne sont pas prises en compte. si quelqu'un a la gentillesse de m'aider, ca m'évitera de devenir chauve avant la fin de la journée.
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks. un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>"; |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Déjà utiliser isset et empty, c'est redondant. Si une variable n'est pas setté, elle est par définition empty().
Et je crois qu'il serait interessant que tu envoies le code complet de ta page, (au moins avec avec le formulaire). Par exemple, as-tu essayé d'afficher tes variables ? Tu es sure que tes $_POST['datex'] sont bien remplis ? -- Rakken |
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : mars 2006 Messages : 168 ![]() |
c'est effectivement dans l'enchainement des if que j'ai dû faire une erreur
Code :
et pour le formulaire Code :
merci beaucoup pour votre aide et votre patience.
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks. un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>"; |
||||
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() |
bon, si j'étais toi, je travaillerai en sectorisant car un pâté de elseif, c'est jamais bon.
Code :
|
||
|
|
00
|
|
|
#5 | |||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Citation:
parce que si je ne remplit pas de date dans son formulaire et j'envoi, isset va lui rendre true dans les trois champs malgré qu'ils sont vides et c'est ce qu'il ne veut pas traiter!!alors l'utilisation de isset n'est pas conseillé! moi je dirai plutot pq pas utiliser empty toute seule sans isset Orgied a raison sauf que c'est plutot ca qu'il veut : Code :
|
|||
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() |
Ouuuuuups désolé, j'ai tapé trop vite
|
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : mars 2006 Messages : 168 ![]() |
merci de votre aide,
je n'ai pas compris pourquoi vous utilisiez empty avec $date plutôt qu'avec les variables POST_ j'ai essayé de simplifier au maximum, pour trouver le problème plus facilement, mais c'est toujours pris en compte, j'arrive sur guideactivite_ajoutdateok1.php au lieu d'avoir un message d'erreur affiché Code :
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks. un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>"; |
||
|
|
00
|
|
|
#8 | ||||
|
Membre régulier
![]() Inscription : janvier 2005 Messages : 71 ![]() |
Je pense que tes accolades sont mal placées : quel que soit le résultat de la condition avec les empty, tu exécutes le code :
Code :
Essayes d'enlever l'accolade en dessus de la ligne Code :
|
||||
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 168 ![]() |
je vais revoir mes accolades tu as raison, mais celle ci je ne peux pas l'enlever, en fait je vérifie 5 groupes de 3 champs (5 dates où 1 champ = jour, 1=mois, 1= année) puis j'intégre ceux des 5x3 champs qui ont été remplis.
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks. un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>"; |
|
|
00
|
|
|
#10 | ||
|
Membre régulier
![]() Inscription : janvier 2005 Messages : 71 ![]() |
D'après ce que j'ai compris, la 1ère date est obligatoire mais pas les autres ?
Essayes une structure dans ce gout là : Code :
|
||
|
00
|
|
|
#11 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Citation:
Le but de isset est de verifier qu'une variable existe, l'avantage de cette fonction est qu'elle permet de ne pas afficher une erreur "Undefined index" si on tente d'acceder a un index de tableau qui n'existe pas. Il faudrait donc tester empty en effet, mais "protégé" par un isset afin de ne pas lever l'exception si un petit malin s'amuse a attaquer la page en POST sans les variables (je suis d'accord, ca sert pas a grand chose, mais au moins le code est propre, ca montre que l'on sait ce que l'on fait). Donc, pour résumer : Code :
* champ non défini : !isset renvoi TRUE, on execute pas le empty (TRUE OR X = TRUE, le champ est considéré comme vide) * champ défini : !isset renvoi FALSE, on execute le empty : * champ vide : empty renvoi TRUE : FALSE OR TRUE = TRUE, le champs est considéré comme vide)Et on ajoute des || (et non des &&) entre les conditions pour verifier que TOUT les champs sont remplis... si tu utilise des &&, ca passera si tu as un seul champ rempli... au vu de ton code, je ne crois pas que ce soit ce que tu veuilles, car les 3 champs servent a construire une seule et meme date. Donc si il en manque une, tu aura une "portion de date" qui fera sans aucun doute planter la requete SQL derriere...
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|||
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() |
si j'ai mis $date au lieu de $_POST, c juste pour taper moins de code...
une notion importante pour un développeur, c de pas trop en faire (wow je vais être hais |
|
|
00
|
|
|
#13 | ||
|
Membre actif
![]() Inscription : juillet 2003 Messages : 257 ![]() |
Citation:
Une autre chose: qu'est ce que ca peut nous faire que lquequ'un s'amuse à nous envoyer les variables POST sans valeurs, meme si on met pas isset? absolument rien, puisque il va voir afficher une exception et c tout. Par contre c assez interessant de l'utiliser dans d'autres cas, notamment si on a plusieurs formulaires dans la meme page (enfin je me comprend) Citation:
|
||
|
|
00
|
|
|
#14 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
Citation:
Code :
Apres je suis d'accord, il y a aussi d'autres dates qui doivent etre gérées dans son probleme, mais commencons par gerer correctement une date avant d'etendre le processus ;o)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|||
|
|
00
|
|
|
#15 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 168 ![]() |
Merci beaucoup à vous tous
j'ai repris le problème à tête reposée, et effectivement j'avais une incompréhension totale de &&, qui aurait dû être || en plus j'ai enlevé la vérification isset de chaque variable, en considérant que je demande au début si le formulaire a été envoyé. Donc si le formulaire est "ISSET" les variables le seront aussi. tandis que si je laisse cette vérification supplémentaire, ca ne fonctionne pas. J'ai juste vérifié si chaque variable n'est pas vide. Merci vraiment pour toutes vos réponses qui m'ont beaucoup aidée.
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks. un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>"; |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com