Problème avec header() // urgent....
Résolu
bibi_angel
-
(Pabix) Messages postés 578 Date d'inscription Statut Membre Dernière intervention -
(Pabix) Messages postés 578 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit problème avec header, peut etre pourrez vous m'éclairer un peu .... voila j'ai un menu deroulant dans un formulaire et je veux rediriger l'utilisateur en fonction de son choix.
Pour ça j'utilise header() et j'obtiens un mangifique :
Warning: Cannot modify header information - headers already sent by (output started at /web_page/html/gestion_prod/index2.php:3)
une petite idée?!?
voici le morceau de code :
<form method="post" action=index2.php>
<p>
<br><b><font color="#306EFF">Choix de l'application : </font></b></br>
</p>
<select name="choix_appli" >
<option value="rien">
<option value="toto">toto
<option value="titi">titi
<option value="tutu">tutu
<option value="tata">tata
</select>
<input type="submit" value="ok"/>
</form>
<?
$appli=$_POST['choix_appli'];
if($appli!="rien")
{
switch($appli)
{
case "toto": header('Location: http://.../gestion_prod/toto.php'); break;
case "titi" : header('Location: http://.../gestion_prod/titi.php');break;
case "tutu" :header('Location: http://.../gestion_prod/tutu.php'); break;
case "tata" : header('Location: http://.../gestion_prod/tata.php'); break;
}
}
?>
voili voilou
j'ai un petit problème avec header, peut etre pourrez vous m'éclairer un peu .... voila j'ai un menu deroulant dans un formulaire et je veux rediriger l'utilisateur en fonction de son choix.
Pour ça j'utilise header() et j'obtiens un mangifique :
Warning: Cannot modify header information - headers already sent by (output started at /web_page/html/gestion_prod/index2.php:3)
une petite idée?!?
voici le morceau de code :
<form method="post" action=index2.php>
<p>
<br><b><font color="#306EFF">Choix de l'application : </font></b></br>
</p>
<select name="choix_appli" >
<option value="rien">
<option value="toto">toto
<option value="titi">titi
<option value="tutu">tutu
<option value="tata">tata
</select>
<input type="submit" value="ok"/>
</form>
<?
$appli=$_POST['choix_appli'];
if($appli!="rien")
{
switch($appli)
{
case "toto": header('Location: http://.../gestion_prod/toto.php'); break;
case "titi" : header('Location: http://.../gestion_prod/titi.php');break;
case "tutu" :header('Location: http://.../gestion_prod/tutu.php'); break;
case "tata" : header('Location: http://.../gestion_prod/tata.php'); break;
}
}
?>
voili voilou
A voir également:
- Problème avec header() // urgent....
- Your browser sent a request that this server could not understand. size of a request header field exceeds server limit. ✓ - Forum Bureautique
- Bad pool header ✓ - Forum Windows
- Bad request ... - Forum Réseaux sociaux
- Rgb header c'est quoi - Forum Carte-mère/mémoire
- 400 bad request request header or cookie too large ✓ - Forum Google Chrome
2 réponses
Explication : Les header (comme leur noms l'indiquent) doite être envoyé au navigateur en 1er ! ... jusque là tout le monde suit ?
Dès que tu fais un echo ou un print, PHP génère pour toi un header (par défaut) dans ton code, tu commence par afficher ton <form> ... donc un header a été émis. Ensuite, tu teste le contenu de $appli et décide (ou non) d'émettre un nouvel header ...
La solution : exécute ton code PHP en premier, puis émet ton html
NB : Après un appel à header() il est préférable de faire un exit() pour stopper l'exécution du script courant.
Dès que tu fais un echo ou un print, PHP génère pour toi un header (par défaut) dans ton code, tu commence par afficher ton <form> ... donc un header a été émis. Ensuite, tu teste le contenu de $appli et décide (ou non) d'émettre un nouvel header ...
La solution : exécute ton code PHP en premier, puis émet ton html
NB : Après un appel à header() il est préférable de faire un exit() pour stopper l'exécution du script courant.
<? // AVANT ce code PHP rien en HTML (ni echo, ni print, ...) switch($_POST['choix_appli']i) { case "rien": break // je fais RIEN ! case "toto": header('Location: http://.../gestion_prod/toto.php'); exit(); case "titi" : header('Location: http://.../gestion_prod/titi.php');exit(); case "tutu" :header('Location: http://.../gestion_prod/tutu.php'); exit(); case "tata" : header('Location: http://.../gestion_prod/tata.php'); exit(); } // ?> <!-- ICI j'emet mon code html et envoie donc un header --> <form method="post" action=index2.php> <p> <br><b><font color="#306EFF">Choix de l'application : </font></b></br> </p> <select name="choix_appli" > <option value="rien"> <option value="toto">toto <option value="titi">titi <option value="tutu">tutu <option value="tata">tata </select> <input type="submit" value="ok"/> </form>
Merci pour les explications et pour ton aide François, :D
Jvais tester tout ça
bonne journée