Rediriger les données d'un formulaire

Résolu/Fermé
steve.bru - 27 mai 2008 à 18:24
 steve.bru - 28 mai 2008 à 09:26
Bonjour,
J'ai un souci qui me prend la tête depuis passé 3heures..
J'ai un site dont index.php comprend de include (pour les parties différentes à chaque page du site) >>
index.php?page=formulaire

Donc sur ce formulaire, j'ai des champs à remplir (sans blague.. lol) et j'aimerais afficher un autre code html à la place de celui du formulaire si les données testées sont correctes (afin de confirmer le remplissage du formulaire).

Par contre, à l'envoi du formulaire je ne sais absolument pas comment je peux faire apparaitre le code d'une nouvelle page (par exemple >> index.php?page=formulaireCONFIRME) pour passer à la suite.

Dois-je changer qqch dans <form name="formCreerCommande" method="POST" action="inc_apresCreerCommandes.php"> ?

Merci de m'éclairer ! Je pourrais bien avancer après ca.. le petit truc qui bloque tout.. :'(

Merci @+ !

Steve B.

7 réponses

ltstam Messages postés 395 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 28 juin 2010 58
27 mai 2008 à 18:27
salut peux tu être plus explicite?
0
euh.. difficile, je pensais l'avoir été au maximum.

Bon je vais essayer !

J'ai un site dont index.php est la structure principale (en-tete, menu, pied de page, etc.).
Chaque lien du menu remplace le code qui est différent à chaque page (et l'URL change en index.php?page=formulaire par exemple).
Le script html du formulaire est contenu dans un fichier 'inc_formulaire.php' et celui ci s'affiche au centre de index.php lorsqu'on clique sur FORMULAIRE de MENU.

a l'envoi du formulaire, j'aimerais pouvoir afficher un nouveau script html (par exemple inc_formulaireConfirme.php) à la place, et qui dit par exemple "Merci pour votre inscription".

Par contre, je ne sais pas comment afficher cette page 'inc_formulaireCoinfirme.php' à l'envoi du formulaire. 'inc_formulaireConfirme.php' sera tjs affiché au centre de la page index.php.

Ais-je été plus clair ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 mai 2008 à 18:43
Salut,

Tu peux faire ton fichier en deux parties

une partie formulaire
une partie test et page confirmation

séparées grâce au test if

structure:

<?php
//init var
$aff_form=1;
$saisies_ok=0;
if(isset($_POST['envoyer']) AND $_POST['envoyer']!=""){
//si le formulaire a ete poste
//recuperation 
$val1=$_POST['champ1'];
//etc
//et test des valeurs
//si les valeurs saisies sont ok 
$saisies_ok=1;
$aff_form=0;

//sinon si les valeurs saisies ne sont PAS ok 
$saisies_ok=0;

}

//si les saisies ne sont pas OK ou que l'on est au premier affichage
if($saisies_ok == 0 OR $aff_form == 1){

//ici ton formulaire
<form name="...." method="post" action="index.php?page=formulaire">
...............

}
?>



?>
0
Super, merci ta réponse m'a aidé !
Je l'ai légèrement modifiée à mon goût.. j'ai tout de même fait une autre page pour la confirmation des données recues.
Cependant, sur cette page, je n'arrive pas à récupérer les variables correspondants au valeurs saisies dans les champs du formulaire. On m'a dit de les récupérer avec $_POST. Je ne suis pas sûr d'avoir saisi son utilisation.

Sur la page du formulaire, je récupére le nom dans $nom.

Est ce que je peux réutiliser sur la deuxième page $_POST['nom'] ? (chez moi ca marche pas.) problème de paramètrage ? Merci de m'éclairer ! :)
0
J'ai finalement opté pour ta proposition. Elle fonctionne, et c'est ce qui compte :)
Merci bcp !
0
Un apport de précisions. Ma balise form est la suivante:

<form name="formCreerCommande" method="POST" action="index.php?page=confirmerCreerCommandes">

la page sur laquelle je voudrai récupérer les informations du formulaire est : confirmerCreercommandes.php

Est-ce pour cela que je ne peux pas récupérer les variables du formulaire ?
0
ScroudaF Messages postés 121 Date d'inscription samedi 8 juillet 2006 Statut Membre Dernière intervention 11 octobre 2011 11
27 mai 2008 à 19:47
Pourrait-on avoir les scripts please ?
0
yes (je précise que je suis pas un pro, et que mon code vous donnera surement envie de faire un passage aux WC..):

index.php
<?php
if(!array_key_exists('page', $_GET)) { include("inc_accueil.php"); }
if(array_key_exists('page', $_GET) && $_GET['page'] == 'login') { include("inc_login.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'accueil') { include("inc_accueil.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'creerActions') { include("inc_creerActions.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'rechercherActions') { include("inc_rechercherActions.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'creerCommandes') { include("inc_creerCommandes.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'rechercherCommandes') { include("inc_rechercherCommandes.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'profil') { include("inc_profil.php"); };
if(array_key_exists('page', $_GET) && $_GET['page'] == 'confirmerCreerCommandes') { include("inc_confirmerCreerCommandes.php"); };

if(array_key_exists('page', $_GET) && $_GET['page'] == 'inscription') { include("inc_inscription.php"); };
?>

---------------------------------------------------------

inc_creerCommandes.php
<form name="formCreerCommande" method="POST" action="index.php?page=confirmerCreerCommandes">...</form>
...
<?php

if (isset ($_REQUEST['envoyer'])) {
// Tableau qui contient toutes les valeurs de l'enregistrement d'une commande
$recCommande = array();

// Définition des variables pour l'enregistrement d'une commande
if (isset($_REQUEST['idAction'])) {
$recCommande["idAction"] = $_REQUEST[idAction];
} else {
$erreurIDACTION = "<font face='verdana' size='1' color='red'>Veuillez séléctionner un ID Action !</font>";
}

$recCommande["idAction"] = $_REQUEST['idAction'];
if (isset($_REQUEST['qteLundi'])) {$recCommande["qteLundi"] = $_REQUEST['qteLundi'];} else {$recCommande["qteLundi"] = 0;}
if (isset($_REQUEST['qteMardi'])) {$recCommande["qteMardi"] = $_REQUEST['qteMardi'];} else {$recCommande["qteMardi"] = 0;}
if (isset($_REQUEST['qteMercredi'])) {$recCommande["qteMercredi"] = $_REQUEST['qteMercredi'];} else {$recCommande["qteMercredi"] = 0;}
if (isset($_REQUEST['qteJeudi'])) {$recCommande["qteJeudi"] = $_REQUEST['qteJeudi'];} else {$recCommande["qteJeudi"] = 0;}
if (isset($_REQUEST['qteVendredi'])) {$recCommande["qteVendredi"] = $_REQUEST['qteVendredi'];} else {$recCommande["qteVendredi"] = 0;}
if (isset($_REQUEST['qteSamedi'])) {$recCommande["qteSamedi"] = $_REQUEST['qteSamedi'];} else {$recCommande["qteSamedi"] = 0;}
if (isset($_REQUEST['qteInvendus'])) {$recCommande["qteInvendus"] = $_REQUEST['qteInvendus'];}
$recCommande["qteInvendus"] = $_REQUEST['qteInvendus'];

// Appel de la fonction d'enregistrement d'une commande
enregistrerCommande($recCommande);
}

?>

-------

Pour le moment, inc_confirmerCreerCommandes est vide..



Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ScroudaF Messages postés 121 Date d'inscription samedi 8 juillet 2006 Statut Membre Dernière intervention 11 octobre 2011 11
27 mai 2008 à 20:01
Ok, et ce que tu veux c'est pouvoir utiliser tes $_POST dans la page inc_confirmerCreerCommandes ?
0
...oui ! :)
0
ScroudaF Messages postés 121 Date d'inscription samedi 8 juillet 2006 Statut Membre Dernière intervention 11 octobre 2011 11
27 mai 2008 à 20:17
Ça ne fonctionne pas si tu te sers des $_POST dans inc_confirmerCreerCommandes.php ?
0
Ca marcherait surement , mais inc_confirmerCreerCommandes.php est un script qui vient completer index.php.
Comme dit précédemment index.php contient tout le code html commun au site web, et au centre de la page sont insérés les scripts des pages différentes (en l'occurence, inc_confirmerCreerCommandes.php) qui est affiché à l'écran grâce à l'URL suivante:

http://127.0.0.1/.../index.php?page=confirmerCreerCommandes

Je n'utilise pas inc_confirmerCreerCommandes.php en tant que page html complète comprenant <html><head><body></body></head>...</html>.
C'est un script qui vient completer index.php.

C'est peut être compliqué.. mais je ne sais pas comment m'expliquer différemment ^^

En tout cas merci pour ton investissement ! J'espère trouver une solution..
0
ScroudaF Messages postés 121 Date d'inscription samedi 8 juillet 2006 Statut Membre Dernière intervention 11 octobre 2011 11
27 mai 2008 à 22:26
Non mais oui je comprends très bien, tu as fais une mise en page sur index.php et tu intégres les pages à afficher par le biais de l'url.
je fais la même chose pour mes sites et c'est trés répandu, l'erreur que font beaucoup est de ne pas contrôler ce qu'il y a dans le GET, par exemple en mettant directement
include($_GET['page']);
et là c'est on peut mettre ce que l'on veut... enfin bref, ce n'est pas ton cas.

Si ton formulaire contient un champ <input type=text name="nomduchamp"/> par exemple,
teste la récupération de la valeur en mettant, dans inc_confirmerCreerCommandes.php un
print $_POST['nomduchamp'];
toujours par exemple...
ça devrait fonctionner, je ne vois pas d'où vient le problème, si tu diriges ton formulaire vers cette page, inclue dans une autre ou non, ça devrait aller...
0
héhé... je sais pas ce qui dans tes mots ma fait comprendre le truc, mais en tout cas tout fonctionne aujourd'hui ! Hier ce n'était pas le cas.. (une bonne nuit de sommeil surement.. :)

MERCI en tout cas ! Ta solution fonctionne (ca tu t'en doutes pas) masi elle fnoctionne chez moi aussi !
c'est ce qui compte..

A bientôt.
0