Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1486 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°258113
le_duc
PlaTyPuS
Posté le 01-12-2002 à 00:58:10  profilanswer
 

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!!!
 
@++

mood
Publicité
Posté le 01-12-2002 à 00:58:10  profilanswer
 

n°258131
beleg
黑社會
Posté le 01-12-2002 à 01:46:38  profilanswer
 

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

n°258156
le_duc
PlaTyPuS
Posté le 01-12-2002 à 09:44:14  profilanswer
 

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!

n°258185
le_duc
PlaTyPuS
Posté le 01-12-2002 à 12:16:52  profilanswer
 

:bounce:

n°258193
Snipe Foo
Head Shot !!!
Posté le 01-12-2002 à 12:32:46  profilanswer
 

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

n°258195
le_duc
PlaTyPuS
Posté le 01-12-2002 à 12:38:46  profilanswer
 

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.

n°258201
Snipe Foo
Head Shot !!!
Posté le 01-12-2002 à 13:07:20  profilanswer
 

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 )

n°258227
le_duc
PlaTyPuS
Posté le 01-12-2002 à 13:59:57  profilanswer
 

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...  :??:

n°258228
beleg
黑社會
Posté le 01-12-2002 à 14:00:09  profilanswer
 

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.
 

n°258229
le_duc
PlaTyPuS
Posté le 01-12-2002 à 14:05:43  profilanswer
 

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.

mood
Publicité
Posté le 01-12-2002 à 14:05:43  profilanswer
 

n°258230
beleg
黑社會
Posté le 01-12-2002 à 14:09:55  profilanswer
 

fais en un bouton submit appeler annuler.

n°258231
Snipe Foo
Head Shot !!!
Posté le 01-12-2002 à 14:10:09  profilanswer
 

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.

n°258232
Snipe Foo
Head Shot !!!
Posté le 01-12-2002 à 14:10:44  profilanswer
 

merde, grilled de 16 secondes :cry:

n°258234
beleg
黑社會
Posté le 01-12-2002 à 14:11:28  profilanswer
 

14  :D

n°258236
Snipe Foo
Head Shot !!!
Posté le 01-12-2002 à 14:13:17  profilanswer
 

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

n°258237
le_duc
PlaTyPuS
Posté le 01-12-2002 à 14:18:27  profilanswer
 

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!

n°258238
le_duc
PlaTyPuS
Posté le 01-12-2002 à 14:19:21  profilanswer
 

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

n°258241
beleg
黑社會
Posté le 01-12-2002 à 14:27:14  profilanswer
 

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
n°258246
le_duc
PlaTyPuS
Posté le 01-12-2002 à 14:39:46  profilanswer
 

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
n°258250
le_duc
PlaTyPuS
Posté le 01-12-2002 à 14:43:08  profilanswer
 

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
n°258251
beleg
黑社會
Posté le 01-12-2002 à 14:46:07  profilanswer
 

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
n°258253
beleg
黑社會
Posté le 01-12-2002 à 14:52:29  profilanswer
 

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
n°258263
le_duc
PlaTyPuS
Posté le 01-12-2002 à 15:08:29  profilanswer
 

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
n°258267
le_duc
PlaTyPuS
Posté le 01-12-2002 à 15:17:00  profilanswer
 

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 ?

n°258275
beleg
黑社會
Posté le 01-12-2002 à 15:30:05  profilanswer
 

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
n°258277
le_duc
PlaTyPuS
Posté le 01-12-2002 à 15:40:00  profilanswer
 

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!
 
@++

n°258278
le_duc
PlaTyPuS
Posté le 01-12-2002 à 15:41:05  profilanswer
 

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

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

n°258281
beleg
黑社會
Posté le 01-12-2002 à 15:44:12  profilanswer
 

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.  
 

n°258304
le_duc
PlaTyPuS
Posté le 01-12-2002 à 16:22:43  profilanswer
 

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 .
 
@++

n°258395
le_duc
PlaTyPuS
Posté le 01-12-2002 à 18:06:11  profilanswer
 

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. ?>


n°258397
le_duc
PlaTyPuS
Posté le 01-12-2002 à 18:10:22  profilanswer
 

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
n°258463
le_duc
PlaTyPuS
Posté le 01-12-2002 à 20:46:33  profilanswer
 

:bounce:

n°258571
beleg
黑社會
Posté le 02-12-2002 à 00:45:03  profilanswer
 

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
n°258711
le_duc
PlaTyPuS
Posté le 02-12-2002 à 10:24:17  profilanswer
 

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
n°258739
le_duc
PlaTyPuS
Posté le 02-12-2002 à 10:42:10  profilanswer
 

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;"

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[ESMTP] Comment ça marche ce bordel ?[PHP] Comment il fait Joce pour les reply....??
[PHP] Ca marche pas..... mais pkoi ? Need help! ;-)Help ça marche pas
Date d'un fichier en PHP[PHP] Formulaire & affichage du résultat.... ???
SQL + PHP ???[PHP] Et la securité dans tout ca....
Plus de sujets relatifs à : [PHP] Ca marche pas... [formulaire inside]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR