Comment rediriger les données d'un f'ormulaire avec header

Résolu/Fermé
yrtuki Messages postés 5 Date d'inscription jeudi 25 avril 2013 Statut Membre Dernière intervention 25 avril 2013 - 25 avril 2013 à 12:06
yrtuki Messages postés 5 Date d'inscription jeudi 25 avril 2013 Statut Membre Dernière intervention 25 avril 2013 - 25 avril 2013 à 21:34
Bonjour, je débute en php et malgré mes recherches je bute sur le problème suivant:
J'ai créer un formulaire avec la method POST très sommaire avec 2 input pour renseigner le nom et le prénom, et un select pour renseigner le genre (homme ou femme).
En fonction du choix homme/femme, la personne est rediriger sur la page approprié via header('location:page.php').
La page est très bien redirigé, mais le problème c'est que je ne sais pas comment rediriger les valeurs des input (nom et prenom) afin qu'ils apparaissent dans la page de redirection.
J'ai essayé de mettre les données du formulaire en cache, mais étant débutant, j'ai du mal à réaliser cette opération.

Voici mon code:

_formulaire:

<html>
<body>
<form action="header.php" method="post">
<label>Nom:</label>
<input type="text"name="nom" size="40"/><br/>
<label>Prénom:</label>
<input type="text"name="prenom" size="40"/><br/>

<label>Sexe:</label>
<select name="sex">
<option value="homme">homme</option>
<option value="femme">femme</option>
</select><br/><br/>

<input type="submit" name="envoyer" value="envoyer"/>
</form>
</body>
</html>


_redirection (header.php):

<?
if($_POST[sex]=='femme')
{
header('location:femme.php');
}
elseif($_POST[sex]=='homme')
{
header('location:homme.php');
}
exit
?>

j'ai essayer ce code pour la mise en cache:

<?
ob_start();
ici je voudrais mettre la valeur des inputs;
$tampon=ob_get_contants();
ob_end_clean();

et dans la page de redirection (homme.php ou femme.php) faire un $tampon pour faire apparaitre la valeur des input.
Je ne sais pas si cette façon de faire est correcte.
Merci d'avance pour votre aide
Cordialement...

7 réponses

gardiendelanuit Messages postés 1770 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
25 avril 2013 à 15:09
Bonjour,

Essaie déjà de mettre des guillemets pour les $_POST['sex'] etc..
0
yrtuki Messages postés 5 Date d'inscription jeudi 25 avril 2013 Statut Membre Dernière intervention 25 avril 2013
25 avril 2013 à 15:32
[gardiendelanuit]
Merci, mais ça ne résout pas mon problème.
0
gardiendelanuit Messages postés 1770 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
25 avril 2013 à 15:38
Pas sûr que ça change grand chose mais respecte la casse:
'Location: femme.php'

0
gardiendelanuit Messages postés 1770 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
25 avril 2013 à 15:41
J'avais pas compris l'objet de ta demande.
Pour ce que tu veux faire utilise les variables de session à l'aide de la variable super global $_SESSION (un tableau) et n'oublie pas de mettre session_start(); tout en haut de chacun de tes pages php.
0

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

Posez votre question
yrtuki Messages postés 5 Date d'inscription jeudi 25 avril 2013 Statut Membre Dernière intervention 25 avril 2013
25 avril 2013 à 16:01
[gardiendelanuit]
ok merci, je vais essayer
0
yrtuki Messages postés 5 Date d'inscription jeudi 25 avril 2013 Statut Membre Dernière intervention 25 avril 2013
Modifié par yrtuki le 25/04/2013 à 18:53
[gardiendelanuit]

C 'est bizarre, ça marché une fois, mais maintenant ça marche plus.
j'ai pas du faire les choses comme il faut.
Voici le code:

_ le formulaire:

<?
session_start();
?>
<html>
<body>
<form action="header.php" method="post">


<label>Nom:</label>
<input type="text"name="nom" size="40"/><br/>
<label>Prénom:</label>
<input type="text"name="prenom" size="40"/><br/>

<label>Sexe:</label>
<select name="sex">
<option value="homme">homme</option>
<option value="femme">femme</option>
</select><br/><br/>

<input type="submit" name="envoyer" value="envoyer"/>
</form>
</body>
</html>

_le "header"

<?
session_start();
$_POST['nom']=$_SESSION['nom'];
if($_POST['sex']=='femme')
{
header('location:femme.php');
}
elseif($_POST['sex']=='homme')
{
header('location:homme.php');
}
exit
?>

_et pour finir la page de redirection (homme ou femme.php)

<?
session_start();
?>
<html>
<body>
<h1>bonjour monsieur</h1>
</body>

<?
echo $_SESSION['nom']
?>
</html>
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
Modifié par jeremy.s le 25/04/2013 à 21:48
$_POST['nom']=$_SESSION['nom'];
C'est l'inverse :)
0
yrtuki Messages postés 5 Date d'inscription jeudi 25 avril 2013 Statut Membre Dernière intervention 25 avril 2013
25 avril 2013 à 21:34
Chui bete, l'erreur est dans le "header"

j'avait écris $_POST['nom']=$_SESSION['nom']; alors qu' en fait, c'est le contraire
$_SESSION['nom']=$_POST['nom'];

Maintenant ça marche, merci beaucoup gardiendelanuit

Salutation....
0