Ca marche pas... [formulaire inside] [PHP] - PHP - Programmation
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
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!
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...
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... |
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... mais j'arrive pas voir l'erreur.
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 )
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 ) |
j'ai pas compris l'avantage de récupérer les variables avec GET et POST...
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 : |
jai tester ca :
Code :
|
jobtiens ca :
[DATA] => XXX [ENVOY] => Envoyer
donc tu as raison, le bouton confirmer donne lieu a une variable.
Marsh Posté le 01-12-2002 à 14:05:43
beleg a écrit a écrit : ca par exemple c nimporte koi :
|
ok pour la variable .
Pour le bouton "Annuler", c'est pas possible de lui attribuer une action ? --> execution d'une fonction.
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.
Marsh Posté le 01-12-2002 à 14:13:17
putain en plus je sais plus compter
Alez, je vais me pendre
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!
Marsh Posté le 01-12-2002 à 14:19:21
Snipe Foo a écrit a écrit : putain en plus je sais plus compter Alez, je vais me pendre |
nonnon, j'ai encore besoin de ton aide après si tu veux! LOL
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.
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 :
|
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)
Marsh Posté le 01-12-2002 à 14:43:08
et la variable confirmer vient de là :
Code :
|
hors, quand je clique sur "Confirmer", il m'affiche le formulaire VIDE....
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.
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.
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é
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 :
|
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 )
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 )
4'° Si l'internaute clique sur "Annuler", j'aurais aimer le rediriger sur une autre page.
Voilà...
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 :
|
donc en fait il faudrait que j'englobe mes variables dans la zone du formulaire ?
Marsh Posté le 01-12-2002 à 15:30:05
le_duc a écrit a écrit : en effet, c'est pas gagné 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 :
|
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
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)
Code :
|
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.
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
imprimer_form
if $enregistrer ... |
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 ?
Bon...ben j'vais aller refaire toute ma page comme tu l'as expliqué!! Merci encore!
@++
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 :
|
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.
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 .
@++
Marsh Posté le 01-12-2002 à 18:06:11
voilà, j'ai refais la page ! Merci beleg!
Code :
|
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 :
|
--> 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 ?
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à...
Marsh Posté le 02-12-2002 à 00:45:03
minute ca va etre long a lire ...
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.
Marsh Posté le 02-12-2002 à 10:24:17
beleg a écrit a écrit : minute ca va etre long a lire ... 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.
Marsh Posté le 02-12-2002 à 10:42:10
ca marche super bien!
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;"
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....
oui, c pas mal long mais merci aux gens qui m'aideront!!!
@++