[PHP] Ca marche pas... [formulaire inside]

Ca marche pas... [formulaire inside] [PHP] - PHP - Programmation

Marsh Posté le 01-12-2002 à 00:58:10    

je comprends pas pourquoi mes variables "confirmer" et "annuler" ne marche pas!!! j'suis newbie donc c'est surement une erreur à la con....  :sarcastic:
 

Code :
  1. <body>
  2. <?php
  3. include("lang_fr.inc.php" ); 
  4. $date = $jour[strftime("%w" )]." ".date("j" )." ".$mois[(strftime("%m" )-1)]." ".date("Y" );
  5. ?>
  6. <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  7.   <tr>
  8.     <td width="45%" valign="top"><?php include ("logo.inc" ); ?></td>
  9.     <td width="15%"> </td>
  10.     <td width="40%">
  11.   <div class="admin" align="right">
  12.         <?php include ("fonction_recherche.inc" ); ?>
  13.       </div></td>
  14.   </tr>
  15.   <tr>
  16.     <td height="35" colspan="2"><a href="#nouveau">Enregistrer ?</a> / <a href="#modifier">Modifier
  17.       - Supprimer ?</a></td>
  18.     <td></td>
  19.   </tr>
  20.  
  21.   <tr>
  22.    <td colspan="3" height="0"> <hr /></td>
  23.   </tr>
  24.  
  25.   <tr>
  26.     <td colspan="3" height="0">
  27.       <?php
  28. /* Déclarations des fonctions */ 
  29.  
  30.   function imprimer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  31.   ?>
  32.       <form method="post" action="administration.php">
  33.         <p class="underline"><b>Enregistrer un nouveau proprio :</b></p>
  34.         <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  35.           <tr>
  36.             <td width="35%" height="45">Pseudo :
  37.               <input type="text" name="Pseudo_new" value="<?php echo $Pseudo_new; ?>" /> </td>
  38.             <td width="65%">Numéro post:
  39.               <input type="text" name="Post_new" size=6 value="<?php echo $Post_new; ?>" /></td>
  40.           </tr>
  41.           <tr>
  42.             <td height="45">Mail :
  43.               <input type="text" name="Mail_new" size=30 value="<?php echo $Mail_new; ?>" /> </td>
  44.             <td>Numéro PM :
  45.               <input type="text" name="PM_new" size=8 value="<?php echo $PM_new; ?>" /></td>
  46.           </tr>
  47.           <tr>
  48.             <td height="83">Adresse FTP :
  49.               <input type="text" size=40 name="FTP_address" value="<?php echo $FTP_address; ?>" /></td>
  50.             <td>Port du FTP :
  51.               <input type="text" name="FTP_new" size="4" value="<?php echo $FTP_new; ?>" /></td>
  52.           </tr>
  53.           <tr>
  54.             <td height="45" colspan="2">Date de mise à jour :
  55.               <?php
  56.      echo $date;
  57.     ?>
  58.             </td>
  59.           </tr>
  60.           <tr>
  61.             <td height="45"><input type="submit" name="enregistrer" value="Envoyer" /></td>
  62.             <td height="45"><input type="reset" name="Reset" value="Rétablir" /></td>
  63.           </tr>
  64.         </table>
  65.       </form>
  66.       <?php
  67.   }
  68.  
  69.   function verif_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  70.   if(!$Pseudo_new || !$Post_new || !$PM_new || !$FTP_address || !$FTP_new):
  71.    echo "<p class=\"comment3\">*Tous les champs sont obligatoires, sauf l'adresse mail.</p>";
  72.    if(!$Pseudo_new) {
  73.     echo "<span class=\"comment3\">--> Indiquez le <b>pseudo</b> !</span><br>"; }
  74.    if(!$Post_new) {
  75.     echo "<span class=\"comment3\">--> Indiquez le <b>numéro du post</b> !</span><br>"; }
  76.    if(!$PM_new) {
  77.     echo "<span class=\"comment3\">--> Indiquez le <b>numéro de PM</b> !</span><br>"; }
  78.    if(!$FTP_address) {
  79.     echo "<span class=\"comment3\">--> Indiquez l'<b>adresse du FTP</b> !</span><br>"; }
  80.    if(!$FTP_new) {
  81.     echo "<span class=\"comment3\">--> Indiquez le <b>port</b> du FTP !</span><br>"; }
  82.   imprimer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  83.   else:
  84.   confirmer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  85.   endif;
  86.   }
  87.  function confirmer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  88.    echo "<p class=\"comment4\">Les informations vont être enregistrées dans la base de données, veuillez contrôler une dernière fois les données saisies.</p>";
  89.    ?>
  90.       <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  91.         <tr>
  92.           <td width="29%" height="45">Pseudo : <b><?php echo $Pseudo_new; ?></b></td>
  93.           <td width="71%">Numéro post : <b><?php echo $Post_new; ?></b></td>
  94.         </tr>
  95.         <tr>
  96.           <td height="45">Mail : <b><?php echo $Mail_new; ?></b></td>
  97.           <td>Numéro PM : <b><?php echo $PM_new; ?></td>
  98.         </tr>
  99.         <tr>
  100.           <td height="65">Adresse FTP : <br><b><?php echo $FTP_address; ?></b></td>
  101.           <td>Port du FTP : <b><?php echo $FTP_new; ?></b></td>
  102.         </tr>
  103.         <tr>
  104.           <td height="45" colspan="2">Date de la mise à jour : <?php echo $date; ?></td>
  105.         </tr>
  106.         <tr>
  107.  <form method="post" action="administration.php">
  108.           <td height="45"><input type="submit" name="confirmer" value="Confirmer" /></td>
  109.           <td height="45"><input type="reset" name="annuler" value="Annuler" /></td>
  110.  </form>
  111.         </tr>
  112.       </table>
  113.      
  114.   <?php
  115. /* Début du programme de mise à jour de la base de données, après confirmation */
  116.   if (isset($confirmer)):
  117.   include ("connexion.php" );
  118.   $request = "INSERT INTO spartateur_spartaproprios (Id, Pseudo, Post_address, Mail_address, PM_address, FTP_address, FTP_port) "
  119.     . " VALUES (' ', '$Pseudo', '$Post', '$Mail', '$PM', '$FTP', '$Port') ";
  120.   $resultat = mysql_query ($request, $connexion);
  121.   if ($resultat)
  122.   {
  123.    echo "<p><strong>Le nouveau compte $Pseudo a bien été enregistré, voilà ses données : </strong></p>\n";
  124.    echo "<table class=\"tableau1\" width=\"100%\" border=\"1\" cellpadding=\"3\">";
  125.    while ($proprios = mysql_fetch_array ($resultat))
  126.       {
  127.     echo "<tr>
  128.       <td width=\"17%\" height=\"38\"><a href=\"". $url ."". $proprios["Post_address"] ."\">". $proprios["Pseudo"] ."</a></td>\n
  129.         <td width=\"38%\" height=\"38\">". $proprios["Mail_address"] ." / <a href=\"". $pm_url. "" .$proprios["PM_address"]. "\">PM</a></td>\n
  130.         <td width=\"25%\" height=\"38\">". $proprios["FTP_address"] ."</td>\n
  131.         <td width=\"5%\" height=\"38\" class=\"center\">". $proprios["FTP_port"] ."</td>\n
  132.         <td width=\"15%\" height=\"38\" class=\"center\"><a href=\'javascript:PopupCentrer(\"verif.php?pseudo=". $proprios["Pseudo"] ."&adresse=". $proprios["FTP_address"] ."&port=". $proprios["FTP_port"] ."\",350,20,\"menubar=no,scrollbars=no,statusbar=no\" )\'>Online ?</a></td>\n
  133.       </tr>";
  134.       }
  135.    echo "</table>";
  136.   }
  137.   else
  138.   {
  139.     echo "<B>Erreur dans l'enregistrement.</B><BR>";
  140.   echo "<B>Message de MySQL :</B> " . mysql_error($connexion);
  141.   }
  142.   endif;
  143.  
  144.   if (isset($annuler)):
  145.  imprimer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  146.   endif;
  147. /* Fin de la fonction confirmer_form */
  148. }
  149.  
  150. /* Début du programme principal */  
  151.   if (!$enregistrer):
  152.    imprimer_form("", "", "", "", "", "", $date);
  153.   else:
  154.    verif_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  155.   endif;
  156. ?>
  157.     </td>
  158.   </tr>
  159.  
  160.   <tr>
  161.     <td colspan="3" height="0"><hr /></td>
  162.   </tr>
  163. </table>
  164. </body>


 
oui, c pas mal long :P mais merci aux gens qui m'aideront!!!
 
@++

Reply

Marsh Posté le 01-12-2002 à 00:58:10   

Reply

Marsh Posté le 01-12-2002 à 01:46:38    

ce sont des boutons submit et reset (HTML) qui servent respectivement a poster ou effacer le formulaire, je ne pense pas que ca corresponde a des variables du coté php. Pr verifier, affiche le contenu du post. Affiche par exemple le contenu du tablo retourné par get_defined_vars() ou http_post_vars ou _post
 
rajoute par exemple un champ caché operation dont tu mettrais la valeur a "INSERER" pr savoir quon a submitter ton formulaire et que tu pourrais tester

Reply

Marsh Posté le 01-12-2002 à 09:44:14    

beleg a écrit a écrit :

ce sont des boutons submit et reset (HTML) qui servent respectivement a poster ou effacer le formulaire, je ne pense pas que ca corresponde a des variables du coté php. Pr verifier, affiche le contenu du post. Affiche par exemple le contenu du tablo retourné par get_defined_vars() ou http_post_vars ou _post
 
rajoute par exemple un champ caché operation dont tu mettrais la valeur a "INSERER" pr savoir quon a submitter ton formulaire et que tu pourrais tester




 
mais alors comment ca se fait que l'autre formulaire, également sur ce script fonctionne parfaitement ? --> là en fait quand je clique sur "Confirmer", il me renvoit direct sur le formulaire de base avec les champs vides.
 
et comment je fais pour obtenir ce que tu dis : "le contenu du tablo retourné par get_defined_vars() ou http_post_vars ou _post" ??
 
merci!

Reply

Marsh Posté le 01-12-2002 à 12:16:52    

:bounce:

Reply

Marsh Posté le 01-12-2002 à 12:32:46    

Il me semble que lorsque tu valide un formulaire avec un bouton submit qui s'appel "toto", une variable du nom de "toto" sera initialisée : a verifier.
 
PS : donc pour savoir avec lequel le form a été validé, il suffit de tester l'existence des 2 variables.
 
PPS : Si je suis hors sujet : désolé, j'ai pas lu tout le code... :D

Reply

Marsh Posté le 01-12-2002 à 12:38:46    

Snipe Foo a écrit a écrit :

Il me semble que lorsque tu valide un formulaire avec un bouton submit qui s'appel "toto", une variable du nom de "toto" sera initialisée : a verifier.
 
PS : donc pour savoir avec lequel le form a été validé, il suffit de tester l'existence des 2 variables.
 
PPS : Si je suis hors sujet : désolé, j'ai pas lu tout le code... :D  




 
:D
 
ben oui, normallement il y'a une variable qui est initialisée.
 
le bouton à l'air de marcher puisque si je clique dessus, il me réaffiche le formulaire VIDE.... alors qu'il est sensé enregistrer les données dans la BD...  :sarcastic:  :(  mais j'arrive pas voir l'erreur.

Reply

Marsh Posté le 01-12-2002 à 13:07:20    

euh, je veux pas etes chiant mais tu devrais réecrire ton code avec les fonctions pour recuperer les variables avec $get et $post comme ça :
 
$user = (isset($_POST["user"]) ? $_POST["user"] : "" );
 
Comme ça ton code sera propre et il marchera avec les versions récentes de PHP.
 
 
Quand tu valid ton formulaire avec le bouton : <input type="submit" name="confirmer" value="Confirmer" />
 
la champ "confirmer" retourne la valeur "Confirmer" (logique :D )

Reply

Marsh Posté le 01-12-2002 à 13:59:57    

Snipe Foo a écrit a écrit :

euh, je veux pas etes chiant mais tu devrais réecrire ton code avec les fonctions pour recuperer les variables avec $get et $post comme ça :
 
$user = (isset($_POST["user"]) ? $_POST["user"] : "" );
 
Comme ça ton code sera propre et il marchera avec les versions récentes de PHP.
 
 
Quand tu valid ton formulaire avec le bouton : <input type="submit" name="confirmer" value="Confirmer" />
 
la champ "confirmer" retourne la valeur "Confirmer" (logique :D )




 
j'ai pas compris l'avantage de récupérer les variables avec GET et POST...  :??:

Reply

Marsh Posté le 01-12-2002 à 14:00:09    

ca par exemple c nimporte koi :
 

Citation :

if (isset($annuler)):


 
le bouton annuler est un reset, il entraine aucun POST du formulaire.
 

Citation :


$arr = get_defined_vars();  
print_r ($arr);


 
 
jai tester ca :
 

Code :
  1. <?php
  2. $arr = get_defined_vars();
  3. print_r ($arr);
  4. ?>
  5. <form method="post">
  6. <input type="text" name="DATA" value="XXX">
  7. <input type="submit" name="ENVOY" value="Envoyer">
  8. <input type="reset" name="EFFAC" value="Effacer">
  9. </form>


 
jobtiens ca :
[DATA] => XXX [ENVOY] => Envoyer  
 
donc tu as raison, le bouton confirmer donne lieu a une variable.
 

Reply

Marsh Posté le 01-12-2002 à 14:05:43    

beleg a écrit a écrit :

ca par exemple c nimporte koi :
 

Citation :

if (isset($annuler)):


 
le bouton annuler est un reset, il entraine aucun POST du formulaire.
 

Citation :


$arr = get_defined_vars();  
print_r ($arr);


 
 
 
jai tester ca :
 

Code :
  1. <?php
  2. $arr = get_defined_vars();
  3. print_r ($arr);
  4. ?>
  5. <form method="post">
  6. <input type="text" name="DATA" value="XXX">
  7. <input type="submit" name="ENVOY" value="Envoyer">
  8. <input type="reset" name="EFFAC" value="Effacer">
  9. </form>


 
jobtiens ca :
[DATA] => XXX [ENVOY] => Envoyer  
 
donc tu as raison, le bouton confirmer donne lieu a une variable.
 
 




 
ok pour la variable ;).
 
Pour le bouton "Annuler", c'est pas possible de lui attribuer une action ? --> execution d'une fonction.

Reply

Marsh Posté le 01-12-2002 à 14:05:43   

Reply

Marsh Posté le 01-12-2002 à 14:09:55    

fais en un bouton submit appeler annuler.

Reply

Marsh Posté le 01-12-2002 à 14:10:09    

ben tu fais 2 boutons submit que tu appel différement et tu tests les variables retournées.
 
pour les $get et $post : les drernieres versions de php ne transmettent plus directement les valeurs de formulaires à ton script, tu es obligé de passer par $post pour recuperer les champs de ton formulaire.

Reply

Marsh Posté le 01-12-2002 à 14:10:44    

merde, grilled de 16 secondes :cry:

Reply

Marsh Posté le 01-12-2002 à 14:11:28    

14  :D

Reply

Marsh Posté le 01-12-2002 à 14:13:17    

putain en plus je sais plus compter :cry:
 
Alez, je vais me pendre :hello:

Reply

Marsh Posté le 01-12-2002 à 14:18:27    

Snipe Foo a écrit a écrit :

ben tu fais 2 boutons submit que tu appel différement et tu tests les variables retournées.
 
pour les $get et $post : les drernieres versions de php ne transmettent plus directement les valeurs de formulaires à ton script, tu es obligé de passer par $post pour recuperer les champs de ton formulaire.




 
pour les $get et $post --> donc chaque fois que j'ai une variable issu d'un formulaire, je dois réecrire ma variable de la facon suivante : $user = (isset($_POST["user"]) ? $_POST["user"] : "" );  
 
?? pkoi ils compliquent les choses alors que c'était si simple de récupérer directement les variables ????? snif...
 
 
pour les boutons submit, OK! mais ca n'a pas l'air de marcher dans mon script, puisque le bouton confirmer est déjà du type submit et que quand je clique dessus, il me renvoie au formulaire vide...alors qu'il devrait débuter la procédure de mise à jour de la base de données.
 
merci pour votre aide tout les 2!

Reply

Marsh Posté le 01-12-2002 à 14:19:21    

Snipe Foo a écrit a écrit :

putain en plus je sais plus compter :cry:
 
Alez, je vais me pendre :hello:  




 
nonnon, j'ai encore besoin de ton aide  :lol:  après si tu veux!  :lol:  :D LOL

Reply

Marsh Posté le 01-12-2002 à 14:27:14    

enfin une fois pour toute, affiche ton $enregistrer pr voir ce quil y a dedans, c qd meme le minimum.


Message édité par beleg le 01-12-2002 à 14:27:41
Reply

Marsh Posté le 01-12-2002 à 14:39:46    

beleg a écrit a écrit :

enfin une fois pour toute, affiche ton $enregistrer pr voir ce quil y a dedans, c qd meme le minimum.




 
je comprends pas, j'ai tout affiché...
 
le $enregistrer vient de là (mais je n'ai pas de problème avec cette variable... -> c'est avec la variable $confirmer qu'il y a problème):
 

Code :
  1. function imprimer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  2.   ?>
  3. ....
  4. ....
  5. ....
  6.            <td height="45"><input type="submit" name="enregistrer" value="Envoyer" /></td>
  7.            <td height="45"><input type="reset" name="Reset" value="Rétablir" /></td>
  8.          </tr>
  9.        </table>
  10.      </form>
  11.      <?php
  12.   }


 
si je suis faux, j'ai pas compris ce que tu veux que j'affiche.
 
Il y'a 2 pages utilisé dans ce script que je n'ai pas affiché :
- lang_fr.inc (pour la date)
- connexion.php (pour la connexion au serveur)


Message édité par le_duc le 01-12-2002 à 14:41:31
Reply

Marsh Posté le 01-12-2002 à 14:43:08    

et la variable confirmer vient de là :
 

Code :
  1. ...
  2. ...
  3.  <form method="post" action="administration.php">
  4.           <td height="45"><input type="submit" name="confirmer" value="Confirmer" /></td>
  5.           <td height="45"><input type="submit" name="annuler" value="Annuler" /></td>
  6.  </form>
  7.         </tr>
  8.       </table>
  9.   <?php
  10. /* Début du programme de mise à jour de la base de données, après confirmation */
  11.   if (isset($confirmer)):
  12.   $request = "INSERT INTO spartateur_spartaproprios (Id, Pseudo, Post_address, Mail_address, PM_address, FTP_address, FTP_port) "
  13.     . " VALUES (' ', '$Pseudo', '$Post', '$Mail', '$PM', '$FTP', '$Port') ";
  14. ...
  15. ...


 
hors, quand je clique sur "Confirmer", il m'affiche le formulaire VIDE.... :sarcastic:


Message édité par le_duc le 01-12-2002 à 14:44:18
Reply

Marsh Posté le 01-12-2002 à 14:46:07    

spa gagné ....  
 
tu essaie de faire un traitement, a partir de variables.
ton traitement ne fait pas ce qui est prevu, donc pr comprendre ou est le probleme, il faut connaitre la valeur de tes variables, pr suivre ton source et trouver le point qui va pas.
 
la programation c pas magique.
 
remplace deja  
par
 
if (isset($enregistrer))
   validform
else
   impri_form
 
edit : oki pr $confirmer, jai pas tt lu non plus, faut pas abuser.


Message édité par beleg le 01-12-2002 à 14:47:08
Reply

Marsh Posté le 01-12-2002 à 14:52:29    

au fait ca marchera pas comme tu fais.
Losque tu confirmes via "Confirmer", tu perds ttes tes données, il nya pas de formulaire contenant tes données.
 
et puis ta fonction confirm_form est bancale a mon avis, tu melanges coté serveur et coté client.


Message édité par beleg le 01-12-2002 à 15:00:52
Reply

Marsh Posté le 01-12-2002 à 15:08:29    

beleg a écrit a écrit :

spa gagné ....  
 
tu essaie de faire un traitement, a partir de variables.
ton traitement ne fait pas ce qui est prevu, donc pr comprendre ou est le probleme, il faut connaitre la valeur de tes variables, pr suivre ton source et trouver le point qui va pas.
 
la programation c pas magique.
 
remplace deja  
par
 
if (isset($enregistrer))
   validform
else
   impri_form
 
edit : oki pr $confirmer, jai pas tt lu non plus, faut pas abuser.




 
en effet, c'est pas gagné  :pt1cable:  
 
1° Comment je fais pour obtenir la valeur de mes variables ?
 
2° Je comprends pas le remplacement que tu veux que je fasses... cette partie fonctionne. Pour l'instant j'ai ca :
 

Code :
  1. if (!$enregistrer):
  2. imprimer_form("", "", "", "", "", "", $date);
  3. else:
  4. verif_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  5. endif;


 
donc si l'utilisateur n'a pas cliqué sur "Enregistrer" du formulaire, un formulaire vide s'affiche (logique) et si il a cliqué sur "Enregistrer", les données sont vérifiées (avec la fonction verif_form).
 
Je t'explique rapidement les démarches de mon script (ptetre que ca aidera  :) ):
 
1° Une page s'affiche avec un formulaire pour enregistrer un nouveau compte.
 
2° Une fois les champs du formulaire remplis, l'internaute clique sur "Enregistrer" (variable $enregistrer donc).
 
3° Une page de confirmation avec toutes les données entrées par l'internaute s'affiche avec un bouton "Confirmer" (qui ne marche pas donc...) et un bouton "Annuler" (qui ne marche pas non plus  :D )
 
4° Si l'internaute clique sur "Confirmer", les données sont entrées dans la base de données (pas encore pu tester, donc c'est même pas sûr  :D )
 
4'° Si l'internaute clique sur "Annuler", j'aurais aimer le rediriger sur une autre page.
 
Voilà...


Message édité par le_duc le 01-12-2002 à 15:10:00
Reply

Marsh Posté le 01-12-2002 à 15:17:00    

beleg a écrit a écrit :

au fait ca marchera pas comme tu fais.
Losque tu confirmes via "Confirmer", tu perds ttes tes données, il nya pas de formulaire contenant tes données.
 
et puis ta fonction confirm_form est bancale a mon avis, tu melanges coté serveur et coté client.




 
arf...ben non, il n'y a pas de formulaire proprement dit qui contient mes données... pour l'instant c'est ca :
 

Code :
  1. <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  2.         <tr>
  3.           <td width="29%" height="45">Pseudo : <b><?php echo $Pseudo_new; ?></b></td>
  4.           <td width="71%">Numéro post : <b><?php echo $Post_new; ?></b></td>
  5.         </tr>
  6.         <tr>
  7.           <td height="45">Mail : <b><?php echo $Mail_new; ?></b></td>
  8.           <td>Numéro PM : <b><?php echo $PM_new; ?></td>
  9.         </tr>
  10.         <tr>
  11.           <td height="65">Adresse FTP : <br><b><?php echo $FTP_address; ?></b></td>
  12.           <td>Port du FTP : <b><?php echo $FTP_new; ?></b></td>
  13.         </tr>
  14.         <tr>
  15.           <td height="45" colspan="2">Date de la mise à jour : <?php echo $date; ?></td>
  16.         </tr>
  17.         <tr>
  18.  <form method="post" action="administration.php">
  19.           <td height="45"><input type="submit" name="confirmer" value="Confirmer" /></td>
  20.           <td height="45"><input type="submit" name="annuler" value="Annuler" /></td>
  21.  </form>
  22.         </tr>
  23.       </table>


 
 
donc en fait il faudrait que j'englobe mes variables dans la zone du formulaire ?

Reply

Marsh Posté le 01-12-2002 à 15:30:05    

le_duc a écrit a écrit :

 
 
en effet, c'est pas gagné  :pt1cable:  
 
1° Comment je fais pour obtenir la valeur de mes variables ?
 
Un echo $confirmer  :)  
comme je lavais dit le Get_defined_vars() aussi, la tu auras ttes les variables.
 
2° Je comprends pas le remplacement que tu veux que je fasses... cette partie fonctionne. Pour l'instant j'ai ca :
 

Code :
  1. if (!$enregistrer):
  2. imprimer_form("", "", "", "", "", "", $date);
  3. else:
  4. verif_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  5. endif;


 
donc si l'utilisateur n'a pas cliqué sur "Enregistrer" du formulaire, un formulaire vide s'affiche (logique) et si il a cliqué sur "Enregistrer", les données sont vérifiées (avec la fonction verif_form).
 
Je t'explique rapidement les démarches de mon script (ptetre que ca aidera  :) ):
 
tu aurais du indiquer des le debut
 
1° Une page s'affiche avec un formulaire pour enregistrer un nouveau compte.
 
oui
 
2° Une fois les champs du formulaire remplis, l'internaute clique sur "Enregistrer" (variable $enregistrer donc).
 
oui
 
3° Une page de confirmation avec toutes les données entrées par l'internaute s'affiche avec un bouton "Confirmer" (qui ne marche pas donc...) et un bouton "Annuler" (qui ne marche pas non plus  :D )
 
c clair, cette partie est a refaire completement.
 
4° Si l'internaute clique sur "Confirmer", les données sont entrées dans la base de données (pas encore pu tester, donc c'est même pas sûr  :D )
 
4'° Si l'internaute clique sur "Annuler", j'aurais aimer le rediriger sur une autre page.
 
Voilà...




 
le point 3, tu le fais comme ca (fonction confirm_form) :
 
- affichage des données
- form de confirmation / annuler
- traitement
 
difficile a texpliquer ... le traitement na rien a faire la.
Php lis tout ton fichier avant de le lenvoyer, faut pas croire que puisque tu affiches quelque chose, c aussitot afficher chez toi, quil attend ton action et apres il continue vers le traitement.
 
je te conseille de refaire tt ca a neuf ...
 
<?php
 

  • liste des fonctions

imprimer_form
verif_form (verifie et appelle confirm_form ou impr_form selon la validation)
confirm_form (affiche un formulaire caché contenant les données, affiche les données, deux boutons confirmer et annuler)
confirmer (met a jour la base de données)
 

  • ton entete html
Code :
  1. ...
  2. <td height="35" colspan="2"><a href="#nouveau">Enregistrer ?</a> / <a href="#modifier">Modifier
  3. ...


 

  • liste des traitements :

if $enregistrer ...
if $confirmer ...
if $annuler ...
if aucun traitement
      imprimer_form("","","","" ....)
 
?>
 
essaie de te trouver un bouquin, ou des bon exemple de formulaire d'enregistrement.


Message édité par beleg le 01-12-2002 à 15:32:27
Reply

Marsh Posté le 01-12-2002 à 15:40:00    

beleg a écrit a écrit :

 
 
le point 3, tu le fais comme ca (fonction confirm_form) :
 
- affichage des données
- form de confirmation / annuler
- traitement
 
difficile a texpliquer ... le traitement na rien a faire la.
Php lis tout ton fichier avant de le lenvoyer, faut pas croire que puisque tu affiches quelque chose, c aussitot afficher chez toi, quil attend ton action et apres il continue vers le traitement.
 
je te conseille de refaire tt ca a neuf ...
 
<?php
 

  • liste des fonctions

imprimer_form
verif_form (verifie et appelle confirm_form ou impr_form selon la validation)
confirm_form (affiche un formulaire caché contenant les données, affiche les données, deux boutons confirmer et annuler)
confirmer (met a jour la base de données)
 

  • ton entete html
Code :
  1. ...
  2. <td height="35" colspan="2"><a href="#nouveau">Enregistrer ?</a> / <a href="#modifier">Modifier
  3. ...


 

  • liste des traitements :

if $enregistrer ...
if $confirmer ...
if $annuler ...
if aucun traitement
      imprimer_form("","","","" ....)
 
?>
 
essaie de te trouver un bouquin, ou des bon exemple de formulaire d'enregistrement.




 
ok, je crois que j'ai compris cette fois!!  :)  
 
Merci beaucoup pour ton aide!!!
 
Au fait, je me demandais justement si à la place d'afficher simplement les variables (pour la confirmation donc), il était pas possible d'afficher le même formulaire, mais avec tous les champs grisés/bloqués (tu vois?).
 
et pour l'affichage des variables, "echo" était logique mais en fait ce que je voulais savoir c'est comment on fait avec --> Get_defined_vars()  je la met ou cette bête ?  :D
 
 
Bon...ben j'vais aller refaire toute ma page comme tu l'as expliqué!! Merci encore!
 
@++

Reply

Marsh Posté le 01-12-2002 à 15:41:05    

pour les champs grisés, j'ai trouvé...et j'vais voir ce que ca donne!  
 

Code :
  1. <input type=text size=50 disabled>

Reply

Marsh Posté le 01-12-2002 à 15:44:12    

le formulaire avec les champs grisés est uen tres bonne idée.
 
get_defined_vars .. ou tu veux, au debut par exemple, ca sera le bordel, mais ca permet de suivre.
 
si tu veux, fais dabord un essaie avec un formalaire nom prenom ..  
1 formulaire avec enregistrer-annuler
2 form de confimation avec confirmer-annuler
3 ecrire une confirmation d'enregistrement, un simple echo.
 
avec ca, tu aura tt la structure pr tester, et bien comprendre le fonctionnement. Apres il sera plus faciel de compliquer la chose avec ce que tu veux faire.  
 

Reply

Marsh Posté le 01-12-2002 à 16:22:43    

beleg a écrit a écrit :

le formulaire avec les champs grisés est uen tres bonne idée.
 
get_defined_vars .. ou tu veux, au debut par exemple, ca sera le bordel, mais ca permet de suivre.
 
si tu veux, fais dabord un essaie avec un formalaire nom prenom ..  
1 formulaire avec enregistrer-annuler
2 form de confimation avec confirmer-annuler
3 ecrire une confirmation d'enregistrement, un simple echo.
 
avec ca, tu aura tt la structure pr tester, et bien comprendre le fonctionnement. Apres il sera plus faciel de compliquer la chose avec ce que tu veux faire.  
 




 
ok, merci.
 
J'suis en-train de refaire ma page  :D .
 
@++

Reply

Marsh Posté le 01-12-2002 à 18:06:11    

voilà, j'ai refais la page ;) ! Merci beleg!
 

Code :
  1. <?php
  2. /* Déclaration des fonctions */
  3. // Fonction imprimer_form
  4. function imprimer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  5. ?>
  6.       <form method="post" action="administration.php">
  7.         <p class="underline"><b>Enregistrer un nouveau proprio :</b></p>
  8.         <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  9.           <tr>
  10.             <td width="35%" height="45">Pseudo :
  11.               <input type="text" name="Pseudo_new" value="<?php echo $Pseudo_new; ?>" /> </td>
  12.             <td width="65%">Numéro post:
  13.               <input type="text" name="Post_new" size=6 value="<?php echo $Post_new; ?>" /></td>
  14.           </tr>
  15.           <tr>
  16.             <td height="45">Mail :
  17.               <input type="text" name="Mail_new" size=30 value="<?php echo $Mail_new; ?>" /> </td>
  18.             <td>Numéro PM :
  19.               <input type="text" name="PM_new" size=8 value="<?php echo $PM_new; ?>" /></td>
  20.           </tr>
  21.           <tr>
  22.             <td height="83">Adresse FTP :
  23.               <input type="text" size=40 name="FTP_address" value="<?php echo $FTP_address; ?>" /></td>
  24.             <td>Port du FTP :
  25.               <input type="text" name="FTP_new" size="4" value="<?php echo $FTP_new; ?>" /></td>
  26.           </tr>
  27.           <tr>
  28.             <td height="45" colspan="2">Date de mise à jour :
  29.               <?php
  30.      echo $date;
  31.     ?>
  32.             </td>
  33.           </tr>
  34.           <tr>
  35.             <td height="45"><input type="submit" name="enregistrer" value="Enregistrer" /></td>
  36.             <td height="45"><input type="reset" name="Reset" value="Rétablir" /></td>
  37.           </tr>
  38.         </table>
  39.       </form>
  40. <?php
  41. }
  42. //-------------------------------------------------------------------------------------------->
  43. // Fonction verif_form
  44. function verif_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  45.  if(!$Pseudo_new || !$Post_new || !$PM_new || !$FTP_address || !$FTP_new):
  46.   echo "<p class=\"comment3\">*Tous les champs sont obligatoires, sauf l'adresse mail.</p>";
  47.   if(!$Pseudo_new) {
  48.    echo "<span class=\"comment3\">--> Indiquez le <b>pseudo</b> !</span><br>"; }
  49.   if(!$Post_new) {
  50.    echo "<span class=\"comment3\">--> Indiquez le <b>numéro du post</b> !</span><br>"; }
  51.   if(!$PM_new) {
  52.    echo "<span class=\"comment3\">--> Indiquez le <b>numéro de PM</b> !</span><br>"; }
  53.   if(!$FTP_address) {
  54.    echo "<span class=\"comment3\">--> Indiquez l'<b>adresse du FTP</b> !</span><br>"; }
  55.   if(!$FTP_new) {
  56.    echo "<span class=\"comment3\">--> Indiquez le <b>port</b> du FTP !</span><br>"; }
  57.  imprimer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  58.  else:
  59.  confirmer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  60.  endif;
  61. }
  62. //-------------------------------------------------------------------------------------------->
  63. // Fonction confirmer_form
  64. function confirmer_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  65.    echo "<p class=\"comment4\">Les informations vont être enregistrées dans la base de données, veuillez contrôler une dernière fois les données saisies.</p>";
  66. ?>
  67.     <form method="post" action="administration.php">
  68.       <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  69.         <tr>
  70.           <td width="35%" height="45">Pseudo :
  71.             <input type="text" name="Pseudo_new" value="<?php echo $Pseudo_new; ?>" disabled /> </td>
  72.           <td width="65%">Numéro post:
  73.             <input type="text" name="Post_new" size=6 value="<?php echo $Post_new; ?>" disabled /></td>
  74.         </tr>
  75.         <tr>
  76.           <td height="45">Mail :
  77.             <input type="text" name="Mail_new" size=30 value="<?php echo $Mail_new; ?>" disabled /> </td>
  78.           <td>Numéro PM :
  79.             <input type="text" name="PM_new" size=8 value="<?php echo $PM_new; ?>" disabled /></td>
  80.         </tr>
  81.         <tr>
  82.           <td height="83">Adresse FTP :
  83.             <input type="text" size=40 name="FTP_address" value="<?php echo $FTP_address; ?>" disabled /></td>
  84.           <td>Port du FTP :
  85.             <input type="text" name="FTP_new" size="4" value="<?php echo $FTP_new; ?>" disabled /></td>
  86.         </tr>
  87.         <tr>
  88.           <td height="45" colspan="2">Date de mise à jour :
  89.             <?php
  90.    echo "$date";
  91.   ?>
  92.           </td>
  93.         </tr>
  94.         <tr>
  95.           <td height="45"><input type="submit" name="confirmer" value="Confirmer" /></td>
  96.           <td height="45"><input type="submit" name="annuler" value="Annuler" /></td>
  97.         </tr>
  98.       </table>
  99.     </form>
  100. <?php
  101. }
  102. //-------------------------------------------------------------------------------------------->  
  103. // Fonction de mise à jour de la base de données
  104. function update_database($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  105.  include ("connexion.php" );
  106.  $request = "INSERT INTO spartateur_spartaproprios VALUES (NULL, '$Pseudo_new', '$Post_new', '$Mail_new', '$PM_new', '$FTP_new', '$Port_new', NULL) ";
  107.  $resultat = mysql_query ($request);
  108.  if ($resultat)
  109.  {
  110.   echo "<p><strong>Le nouveau compte $Pseudo_new a bien été enregistré, voici ses données : </strong></p>\n";
  111.   echo "<table class=\"tableau1\" width=\"100%\" border=\"1\" cellpadding=\"3\">";
  112.   while ($proprios = mysql_fetch_array ($resultat))
  113.      {
  114.    echo "<tr>
  115.      <td width=\"17%\" height=\"38\"><a href=\"". $url ."". $proprios["Post_address"] ."\">". $proprios["Pseudo"] ."</a></td>\n
  116.        <td width=\"38%\" height=\"38\">". $proprios["Mail_address"] ." / <a href=\"". $pm_url. "" .$proprios["PM_address"]. "\">PM</a></td>\n
  117.        <td width=\"25%\" height=\"38\">". $proprios["FTP_address"] ."</td>\n
  118.        <td width=\"5%\" height=\"38\" class=\"center\">". $proprios["FTP_port"] ."</td>\n
  119.        <td width=\"15%\" height=\"38\" class=\"center\"><a href=\'javascript:PopupCentrer(\"verif.php?pseudo=". $proprios["Pseudo"] ."&adresse=". $proprios["FTP_address"] ."&port=". $proprios["FTP_port"] ."\",350,20,\"menubar=no,scrollbars=no,statusbar=no\" )\'>Online ?</a></td>\n
  120.      </tr>";
  121.      }
  122.   echo "</table>";
  123.  }
  124.  else
  125.  {
  126.    echo "<B>Erreur dans l'enregistrement.</B><BR>";
  127.  echo "<B>Message de MySQL :</B> " . mysql_error($connexion);
  128.  }
  129. }
  130. //-------------------------------------------------------------------------------------------->
  131. /* Liste des traitements */
  132. if(isset($enregistrer)) :
  133.  verif_form($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  134. elseif(isset($confirmer)) :
  135.  update_database($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date);
  136. elseif(isset($annuler)) :
  137.  echo "Bonjour mon petit wistiti !";
  138. else :
  139.  imprimer_form("", "", "", "", "", "", $date);
  140. endif;
  141. ?>


Reply

Marsh Posté le 01-12-2002 à 18:10:22    

au fait, la fonction de mise à jour de la base de données ne marche pas.... enfin partiellement....
 
Ma table se compose comme suit :
Id | Pseudo | Post_address | Mail_address | PM_address | FTP_address | FTP_port | admin_pass
 

Code :
  1. function update_database($Pseudo_new, $Post_new, $PM_new, $FTP_address, $FTP_new, $Mail_new, $date) {
  2.  include ("connexion.php" );
  3.  $request = "INSERT INTO spartateur_spartaproprios VALUES (NULL, '$Pseudo_new', '$Post_new', '$Mail_new', '$PM_new', '$FTP_new', '$Port_new', NULL) ";
  4.  $resultat = mysql_query ($request) or die ($request . ' -- ' . mysql_error());
  5.  if ($resultat)
  6.  {
  7.   echo "<p><B>Le nouveau compte $Pseudo_new a bien été enregistré</B></p>\n";
  8.  }
  9.  else
  10.  {
  11.     echo "<B>Erreur dans l'enregistrement.</B><BR>";
  12.   echo "<B>Message de MySQL :</B> " . mysql_error($connexion);
  13.  }
  14. }


 
--> il insère bien une ligne à ma base de donnée, mais elle ne contient aucun élément (c'est vide koi...). T'as pas une idée ?  :D  
 
avant tu m'as dit que je confondait "côté serveur" et "côté client" en parlant des variables...je pense que le problème est là...


Message édité par le_duc le 01-12-2002 à 21:34:23
Reply

Marsh Posté le 01-12-2002 à 20:46:33    

:bounce:

Reply

Marsh Posté le 02-12-2002 à 00:45:03    

minute ca va etre long a lire ...  :D
 
edit :  
 
bon premierement, c qd meme bcp mieux comme ca ?
bon c'est pas mal mais c le disabled qui pose probleme
donc double chaque input avec un deuxieme input de type=hidden.
ca devrait aller.
 
autre chose :
tu peux remplacer
<?php echo $Post_new; ?>
par
<?=$Post_new?>
ca change rien, c juste plus leger.


Message édité par beleg le 02-12-2002 à 00:58:15
Reply

Marsh Posté le 02-12-2002 à 10:24:17    

beleg a écrit a écrit :

minute ca va etre long a lire ...  :D
 
edit :  
 
bon premierement, c qd meme bcp mieux comme ca ?
bon c'est pas mal mais c le disabled qui pose probleme
donc double chaque input avec un deuxieme input de type=hidden.
ca devrait aller.
 
autre chose :
tu peux remplacer
<?php echo $Post_new; ?>
par
<?=$Post_new?>
ca change rien, c juste plus leger.
 




 
Ouais, c'est beaucoup mieux! plus clair!!
 
Ok ;) j'vais essayer avec des input type=hidden.
 
merci.


Message édité par le_duc le 02-12-2002 à 10:33:54
Reply

Marsh Posté le 02-12-2002 à 10:42:10    

ca marche super bien!  :love:  
 
merci beaucoup!
 
par contre, ca :
 
tu peux remplacer  
<?php echo $Post_new; ?>  
par  
<?=$Post_new?>
 
ca n'as pas l'air de marcher...j'ai remis "echo $variable;"

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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