retour sur une page apres une saisie

Eléphant du PHP | 289 Messages

26 mai 2005, 08:27

bonjour

je suis vraiment dsl du delais mais je viens vous dire que ca fonctionne :lol:
merci de votre aide.

une petite question, si je veux afficher une autre page que le page de saisie, cette méthode ne fonctionne pas (j'espère que je ne dis pas de connerie car cela voudrait dire que je n'ai rien compris!!!), quelle pourrait etre la synthaxe pour afficher automatiquement une page???

merci de de votre aide en tout cas,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

26 mai 2005, 08:33

Salut FAbrice,
Loin de moi l'idée d'avoir l'air plus idiot que ne suis, mais je comprends pas la question... comme après un certain temps je finis par perdre le fil, j'ai un peu de mal à suivre. Afficher une autre page à partir d'où et dans quelle conditions ?

Essaye de tracer un schéma de ce que tu veux faire, quelles pages sont à prendre en compte et comment tu voudrais pouvoir naviguer pour obtenir quoi au juste ?
:?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

26 mai 2005, 12:33

il faut tout simplement mettre le nom de la page destination dans la clause ACTION= du formulaire
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 289 Messages

29 mai 2005, 13:06

salut,

je vais encore passer pour une truffe mais mon action est déja occupée:
</p> 
  <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
  <table width="773" border="0"> 
    <tr> 
je peux rajouter un truc a ce code???

merci de votre aide,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

29 mai 2005, 13:13

Non, rien, ou encore un attribut "id" dans la balise <form>, mais action pointe vers la page en cours, tu ne peux pas mettre une seconde url.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

29 mai 2005, 13:28

alut chef

ca veut donc dire qu'une fois que j'ai saisie mes données dans mon formulaire, je me peux pas afficher une autre page? c donc ca?

FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

29 mai 2005, 13:38

Ce que tu voudrais faire n'est pas impossible, mais il faudra utiliser des variables de session.:

Tu as donc deux pages, celle du formulaire et celle où tu veux aller si le formulaire est validé. Dans ton attribut action, mets le chemin vers cette seconde page mais tu dois transférer la validation du formulaire vers cette seconde page. Au début de cette seconde page, tu récupères les données que tu mets dans des variables de session (explication plus loin). Tu fais la validation:
- Le formulaire est valide: tu affiches le contenu de cette seconde page;
- Le formulaire est invalide, tu fais une redirection vers le formulaire où tu récupère ce qui a été saisi dans les variables de session. Au début de ta page formulaire, tu testes si des variables de session ont été initialisées et tu affiches éventuellement avant le formulaire un message d'erreur personnalisé.

Pourquoi avec des variables de session ? parce que sinon, avec la redirection, tu perds le contenu da ta variable $_POST et ce que l'internaute à saisi aurait disparu, il devrait donc tout saisir à nouveau complètement, ce qui va l'agacer royalement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 983 Messages

29 mai 2005, 14:07

Pas forcément. Ton action renvoit sur la même page que l'affichage de ton formulaire, mais tu peux faire un truc du genre:
<?php

if(isset($_POST)){
//traitement des données saisies

//si traitement ok, on redirige vers une autre page
header("location: tapage.php");
exit;
}
//affichage du formulaire avec message d'erreur
Ensuite tu peux récupérer la valeur des champs saisis ainsi:

Code : Tout sélectionner

<input type="text" name="saisie" value="<?php if(isset($_POST['saisie'])) echo $_POST['saisie']; ?>">

Mammouth du PHP | 19672 Messages

29 mai 2005, 14:10

ha c'est vrai, tu as raison rami, je faisais ça par rapport à un système que je suis obligé de monter comme je l'ai indiqué parce que j'ai déjà du html envoyé au moment du test, je n'ai donc pas le choix. Mais si effectivement rien n'a encore été envoyé au navigateur, alors on peut faire comme ça.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

29 mai 2005, 14:30

tu entends quoi par
rien n'a encore été envoyé au navigateur
?
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 983 Messages

29 mai 2005, 14:35

Dans les traitements des données, ne faire aucun echo, aucun affichage, auncun espace avant le balise <?php.

Car la fonction header envoit des en-tetes au navigateur. Si tu fais un affichage, les en-têtes sont envoyées, donc la fonction header ne fonctionnera pas et te renverra un message d'erreur disant que les headers ont déjà été envoyés ;)

Eléphant du PHP | 289 Messages

30 mai 2005, 21:55

Ô grands maitres du PHP,

je vous remercie de votre aides et de vos conseils!!

rdv à mon prochain pb :lol:
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

ViPHP
fab
ViPHP | 2657 Messages

30 mai 2005, 22:18

Et le tag [Résolu] :p ?