problème de condition et de timing du coup...

problème de condition et de timing du coup... - PHP - Programmation

Marsh Posté le 06-03-2006 à 17:29:13    

bonjour à tous!!
 
je vais tenter de vous expliquer mon problème simplement :
 
j'ai deux formulaires dans 1 page.
le premier me permet de sélectionner certaines lignes dans ma table, qui seront implémentées par le second formulaire.
la valeur du premier formulaire est réenvoyé avec le second par un champ de type hidden.
 
dès que je valide mon premier formulaire, il m'effectue la vérification des champs du second (qui se trouve à la ligne 102).
or je souhaiterais que cette vérification ne s'effectue qu'une fois le second formulaire validé.
 
c'est pourquoi j'avais fait un champ de type hidden, en me disant que la condition if (isset ($_POST['selectiongroupement1']) ne serait effectif QUE lorque le submit du second formulaire a été effectué.
 
or c'est pas le cas....
 
voici mon code :  

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Document sans titre</title>
  6. <link href="css/publipostage.css" rel="stylesheet" type="text/css" />
  7. </head>
  8. <body>
  9. <?php
  10. mysql_connect("localhost", "root", "" );
  11. mysql_select_db("carte_demarchage" );
  12. ?>
  13. <p>Page de publipostage provisoire</p>
  14. <a href="pageapplic.php">Retour à l accueil</a>
  15. <?
  16. //définitions des variables temps au format valide sql
  17. if (isset ($_POST['lr_jour'])AND isset($_POST['lr_mois']) AND isset( $_POST['lr_an']))
  18. {
  19. $dateletrecom=$_POST['lr_an'] . '-' . $_POST['lr_mois'] . '-' . $_POST['lr_jour'];
  20. }
  21. if (isset ($_POST['co_jour'])AND isset($_POST['co_mois']) AND isset( $_POST['co_an']))
  22. {
  23. $dateenvcoliss=$_POST['co_an'] . '-' . $_POST['co_mois'] . '-' . $_POST['co_jour'];
  24. }
  25. ?>
  26. <h1>Suivi Envoi</h1>
  27. <form action="" method="post" name="selectiondugroupement">
  28. <?
  29. //selectionne de façon distincte les libelle entite remettant
  30. $requetepubli = mysql_query ('SELECT DISTINCT tp_edition1.LibEntiteRemettant FROM tp_edition1 ORDER BY tp_edition1.LibEntiteRemettant');
  31. $nb = mysql_numrows($requetepubli);
  32. ?>
  33. <p>Sélection du groupement  à traiter : </p>
  34. <?
  35. echo "<select name='selectiongroupement'>";
  36. while ($reponsepubli = mysql_fetch_array ($requetepubli))
  37. {
  38. $reponsepubli_LibEntiteRemettant = $reponsepubli['LibEntiteRemettant'];
  39. echo "<option name='selectgrpt' value='$reponsepubli_LibEntiteRemettant'> $reponsepubli_LibEntiteRemettant</option>";
  40. }
  41. echo "</select>";
  42. echo '<input type="submit" value="Envoyer" />';
  43. ?>
  44. </form>
  45. <a href="includes/telecharge.php?urlComplete=<? echo $urlComplete; ?>$nomFichier=<? echo $file; ?>">télécharger le document de publipostage</a>
  46. <p>Vous avez sélectionné : <? if (isset ($_POST['selectiongroupement'])) {echo $_POST['selectiongroupement'];} ?> </p>
  47. <form action="" method="post" name="traitement_envoi">
  48.           <input type="hidden" name="selectiongroupement1" value="<?php echo $_POST['selectiongroupement'];?>" />
  49. <p>Num&eacute;ro Lettre recommand&eacute;e : <input name="numerolr" type="text" size="20" value="<? echo $reponseaff['NumeroLR'];?>">
  50. Date Envoi Lettre recommand&eacute;e : <input type="text" name="lr_jour" size="2" maxlength="2" />
  51.               <input type="text" name="lr_mois" size="2" maxlength="2" />
  52.               <input type="text" name="lr_an" size="4" maxlength="4" />
  53. </p>
  54. <input type="submit" value="Envoyer" />
  55. </form>
  56. <?
  57. //si le numéro lr envoyé et non vide inscrit le dans la bdd
  58. if (isset ($_POST['numerolr']) AND !empty($_POST['numerolr']))
  59. {
  60. $requete14 = mysql_query ('UPDATE `tp_editionencours` SET NumeroLR="'.$_POST['numerolr'].'" WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"') or die(mysql_error());
  61. //insertion date edition carte
  62. $requete55 = mysql_query ('UPDATE `tp_editionencours` SET DateEditCarte="'.$dateeditcarte.'" WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"') or die(mysql_error());
  63. }
  64. //si les vraibles de date pour lettre recommandée sont rentrés alors met à jour le champs datedeclahonneur pour l'id tapé
  65. if (isset ($_POST['lr_jour']) AND isset($_POST['lr_mois']) AND isset( $_POST['lr_an']) AND !empty($_POST['lr_jour']) AND !empty($_POST['lr_mois']) AND !empty( $_POST['lr_an']))
  66. {
  67. $requete15 = mysql_query ('UPDATE `tp_editionencours` SET DateEnvoiLR="'.$dateletrecom.'" WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"') or die(mysql_error());
  68. }
  69. //idem envoi AR
  70. if (isset ($_POST['envoiAR']) AND !empty($_POST['envoiAR']))
  71. {
  72. $requete16 = mysql_query ('UPDATE `tp_editionencours` SET EnvoiEnAR="'.$_POST['envoiAR'].'" WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"') or die(mysql_error());
  73. }
  74. //si la variable selection groupement 1 est créé c'est à dire si elle est passée du premier au second formulaire (champ type hidden)
  75. if (isset ($_POST['selectiongroupement1']))
  76. {
  77. if (empty($_POST['numerolr']) OR empty($_POST['lr_jour']) OR empty($_POST['lr_mois']) OR empty ($_POST['lr_an']))
  78. {?> <script language="javascript">alert('Veuillez rentrer les informations concernant l\'envoi de la Lettre recommandée');</script> <?
  79. }
  80. }
  81. ?>
  82. </body>
  83. </html>


 
 
...si quelqu'un peut me filer un coup de main, ce serait vraiment sympa!!
 
merci!! :D


Message édité par flock86 le 06-03-2006 à 17:36:39
Reply

Marsh Posté le 06-03-2006 à 17:29:13   

Reply

Marsh Posté le 06-03-2006 à 17:45:11    

Dit moi, tu te rends compte que t'utilises "$_POST['selectiongroupement1']" avant d'avoir vérifier si elle est initialisé et que tu ne j'utilises plus aprés avoir vérifier son existance?

Reply

Marsh Posté le 06-03-2006 à 17:52:06    

omega2 a écrit :

Dit moi, tu te rends compte que t'utilises "$_POST['selectiongroupement1']" avant d'avoir vérifier si elle est initialisé et que tu ne j'utilises plus aprés avoir vérifier son existance?


 
 
euuuuh :sweat:  :D  
 
beeen oui.
 
en fait il est vrai que j'aurais pu vérifier si elle est intialisée avant de l'utiliser...
 
mais après je vérifie qu'elle est là ou pas c'est tout...j'ai mis ça (à la ligne 102) dans le cas  de la première ouverture de page, pour éviter d'avoir un message d'erreur comme quoi la variable n'était pas définie...
stou!
 
je sais que ça peut paraitre crétin... et ça l'est sans doute... :sweat:
 
et pis j'ai mangé un bout de code pour l'exposer ici...trop long sinon


Message édité par flock86 le 06-03-2006 à 17:55:53
Reply

Marsh Posté le 06-03-2006 à 17:56:01    

Il s'en sert fort joliment ici:

Code :
  1. {
  2. $requete14 = mysql_query ('UPDATE `tp_editionencours` SET NumeroLR="'.$_POST['numerolr'].'" WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"') or die(mysql_error());
  3. //insertion date edition carte
  4. $requete55 = mysql_query ('UPDATE `tp_editionencours` SET DateEditCarte="'.$dateeditcarte.'" WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"') or die(mysql_error());
  5. }


D'ailleurs toutes tes requetes rentreraient en une seule, si tu la construisait en fonction de tes params.
 
Quoi qu'il arrive pour ton "vrai" problème... Pfff sais pas c'est tout dégueux ton truc et ça me laisse penser que tu ne vois pas trop bien la différence en html&php
 
edit: mal lu le post de gatsu


Message édité par anapajari le 06-03-2006 à 17:58:52
Reply

Marsh Posté le 06-03-2006 à 17:57:04    

boah! si je fais la différence..pourquoi tu dis ça?
 
degueu je veux bien...mais j'applique ma logique de beta avant toute chose...
tu veux que j'indente mon code? keske je peux faire pour le rendre moins dégueu à part optimiser les requetes sql?


Message édité par flock86 le 06-03-2006 à 17:58:47
Reply

Marsh Posté le 06-03-2006 à 18:03:22    

nan mais déjà:

Code :
  1. $requete55 = mysql_query ('UPDATE `tp_editionencours` SET DateEditCarte="'.$dateeditcarte.', DateEditCarte="'.$dateeditcarte." WHERE LibEntiteRemettant="'.$_POST['selectiongroupement1'].'"');


ça t'evite de faire une requete pour rien sur le serveur ( et pareil pour les autres if)
ensuite si dans $_POST['selectiongroupement1'] tu devrais le mysql_escaper au moins!

Reply

Marsh Posté le 06-03-2006 à 18:08:02    

mysql_escaper ? ok! compris...oui t'as raison je connaissais pas! hé!
 
merci pour la requete simplifiée oui en effet c'est mieux!!

Reply

Sujets relatifs:

Leave a Replay

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