Pourquoi ce code ne fonctionne pas

Fermé
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 22 juil. 2013 à 23:45
 flexi2202 - 24 juil. 2013 à 22:25
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

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 mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
23 juil. 2013 à 12:11
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 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
23 juil. 2013 à 21:32
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 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
23 juil. 2013 à 22:06
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 mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
24 juil. 2013 à 19:19
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
bonsoir
merci pour la reponse
mais j ai garder l exemple que j ai arrive a faire fonctionner
0