Pourquoi ce code ne fonctionne pas

flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   -  
 flexi2202 -
bonjour
j essaye ce morceau de code qui ne fonctionne pas
qui peux m expliquer pourquoi
merci de l aide

<?php
if($_POST['question1'] == "oui" && $_POST['question2'] == "oui")
{
    header('Location: http://forums.phpbb-fr.com/');
}
elseif($_POST['question1'] == "oui" && $_POST['question2'] == "non")
{
    header('Location: https://www.commentcamarche.net/
}
elseif($_POST['question1'] == "non" && $_POST['question2'] == "oui")
{
    header('Location: https://www.google.be/?hl=fr&gws_rd=ssl
}
elseif($_POST['question1'] == "non" && $_POST['question2'] == "non")
{
    header('Location: https://www.google.fr/?gws_rd=ssl
}
else
{
    header('Location: formulaire.php');
}
?>
<html>
<body>
<form action="questionnaire.php" method="post">
<p>Question n°1 : blablabla ?</p>
<p><input type="radio" name="question1" value="oui1" />&nbsp;Oui</p>
<p><input type="radio" name="question1" value="non1" />&nbsp;Non</p>
<p>Question n°2 : blablabla ?</p>
<p><input type="radio" name="question2" value="oui2" />&nbsp;Oui</p>
<p><input type="radio" name="question2" value="non2" />&nbsp;Non</p>
<p><input type="submit" value="VALIDER" /></p>
</form>
</body>
</html>
A voir également:

5 réponses

azertgb
 
Bonsoir,


On peut remarquer qu'aucune des conditions sauf la dernière ne sera jamais remplie puisque vous avez indiqué en value "oui1" et non "oui" ainsi que "non1" alors que vous testez si il y a "non" indiqué etc...

LA VALEUR QUE PRENDRA LA VARIABLE POST EST CELLE INDIQUE PAR L'ATTRIBUT VALUE ET NON LE TEXTE INDIQUE EN HTML; ne confondez pas affichage et valeur de variables.

Votre structure conditionnelle en elseif pour finir sur else est assez moche: source d'erreurs et un casse tête à modifier, sans parler de la complexité de lecture/compréhension du code.

Je vous conseille de tester vos valeurs POST et de vérifier si celle ci existe via isset(), il est aussi recommandé de ne pas utiliser ces variables directement par soucis de sécurité.

Vous auriez fait un echo() de vos variables vous auriez constaté le problème, echo() est la fonction la plus utile en PHP.
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonjour,

Ici:

<input type="radio" name="question1" value="oui1" /> Oui</p>

si je sélectionne cette option, c'est oui1 qui est envoyé, or vous testez oui.

Donc, ça ne peut pas marcher.

Corrigé:

<form action="questionnaire.php" method="post">
<p>Question n°1 : blablabla ?</p>
<p><input type="radio" name="question1" value="oui" />&nbsp;Oui</p>
<p><input type="radio" name="question1" value="non" />&nbsp;Non</p>
<p>Question n°2 : blablabla ?</p>
<p><input type="radio" name="question2" value="oui" />&nbsp;Oui</p>
<p><input type="radio" name="question2" value="non" />&nbsp;Non</p>
<p><input type="submit" value="VALIDER" /></p>
</form>

0
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
bonsoir a tous
merci pour la reponse
mais cela ne fonctionne pas

j ai un peu modifie le code
le voici
<?php
if($_POST['question1'] == "oui" )
{
    header('Location: http://forums.phpbb-fr.com/');
}
elseif($_POST['question1'] == "non" )
{
    header('Location: https://www.commentcamarche.net/
}


else
{
    header('Location: formulaire.php');
}
?>
<html>
<body>
<form action="questionnaire.php" method="post">
<p>Question n°1 : blablabla ?</p>
<p><input type="radio" name="question1" value="oui" />&nbsp;Oui</p>
<p><input type="radio" name="question1" value="non" />&nbsp;Non</p>
<p><input type="submit" value="VALIDER" /></p>
</form>
</html>


j ai une erreur a la ligne 7
Notice: Undefined index: sex in /home/a3325630/public_html/les-perles/essai redirectio/formulaire.php on line 7
0
flexi2202 Messages postés 3822 Date d'inscription   Statut Membre Dernière intervention   190
 
voila cela fonctionne avec cet exemple
<?php
if($_POST['question1'] == "oui" )
{
    header('Location: http://forums.phpbb-fr.com/');
}
elseif($_POST['question1'] == "non" )
{
    header('Location: https://www.commentcamarche.net/
}

?>
<html>
<body>
<form action="questionnaire.php" method="post">
<p>Question n°1 : blablabla ?</p>
<p><input type="radio" name="question1" value="oui" />&nbsp;Oui</p>
<p><input type="radio" name="question1" value="non" />&nbsp;Non</p>
<p><input type="submit" value="VALIDER" /></p>
</form>
</html>


Mais a present comment faire pour ouvrir les liens dans un nouvel onglet dans un nouvel onglet
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonsoir,

Avec header() vous faites une redirection via le protocole http.

Pour ouvrir sur un clic dans une autre fenêtre, il y a plus simple:1

<a href="monsite.com" target="autre">mon texte</a>

Mais vous ne pouvez pas ouvrir une autre fenêtre ou onglet avec header();

A+
0

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

Posez votre question
flexi2202
 
bonsoir
merci pour la reponse
mais j ai garder l exemple que j ai arrive a faire fonctionner
0