PHP : Redirection par un bouton + liste

karine666 Messages postés 52 Statut Membre -  
 karine666 -
Bonjour,

je cherche a faire un bouton lien vers une autre page. Ca semble facile ? peut etre ... sauf que :
Une liste d'adresse de page est contenue dans une liste déroulante (cette liste est remplie par un script php).
Et j'ai un bouton Goto.
Donc, quand on clique sur le bouton, ca doit envoyer vers la page sélectionnée dans la liste.

J'ai donc (dans l'ordre) :
mon script qui teste : l'appui sur le bouton.
if(!empty($_POST["goto"]))
{$path = $_POST["liste_deroulante_des_categories"];

// Utiliser la redirection ---------------
header('viewcat.php?path='.utf8_decode($path);
}

mon bouton Goto :
<form id="toolbox" name="toolbox" method="post" >
<input name="goto" type="submit" class="Style_Normal" id="goto" value="Goto" />

ma liste deroulante
<input name="URL" type="text" class="Style_Normal" id="URL" value="" size="60" />
</span></td>
<td><span class="Style_Normal">
<select name="liste_deroulante_des_categories" class="Style_Normal" >

remplie par mon script
<?php //requete pour lister les catégories
boucle pour remplir la liste deroulante
echo htmlentities($col_value) ?>"><?php echo htmlentities($add_path) ?></option>
</select>
</form>

le problème est que quand je clique sur le bouton Goto, j'obtiens le message d'erreur suivant :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/booky/php/viewcat.php:11) in /var/www/booky/php/var.php on line 18
(ligne 18= header('viewcat.php?path='.utf8_decode($path));)

J'espère que vous pourrez m'aider car je suis bloquééééééééééée...
Question bonux : comment fait on pour avoir un bouton qui rafraichit la page sur laquelle on se trouve (en php) please ?

bisous !
A voir également:

9 réponses

Utilisateur anonyme
 
allo, tu peut le faire en javascript,cé moins compliqué
0
Utilisateur anonyme
 
Si tu met le code complet de ta page ici, je te trouverais la solution (si j'en suis capable)
0
Mimiste Messages postés 1159 Statut Membre 206
 
Ton souci est que tu doit faire un echo ou tu doit afficher un element HTML (un espace qui traine ou quelque chose) avant ta fonction header. Verifie que tu n'a pas d'espace ou de ligne sautée avant la premiere ouverture de la balise php par exemple, ça arrive souvent.
0
karine666 Messages postés 52 Statut Membre 5
 
coucou !
merci pour les reponses. Au commencement de ma page, j'ai bien vérifié que j'ai rien. Elle commence avec ca.

<?php
$path_to_find=$_GET["path"];
if(!empty($_POST["goto"]))
{$path_to_go = $_POST["liste_deroulante_des_categories"];

// Utiliser la redirection ---------------
//echo "goto :".$path_to_go;
si j'enleve ce commentaire, je retrouve le message d'erreur...

header('viewcat.php?path='.$path_to_go);
}

include ("var.php");
include ("header.php");

?>
<body>
<?php
include ("add.php"); ?>
...
</body>

Le problème est que rien ne se passe ! please help ! Et si je mets un "exit(); " après l'instruction header, j'ai juste une feuille blanche. baaaaaaah comprends rien...

Bisous !
0
Mimiste Messages postés 1159 Statut Membre 206
 
// Utiliser la redirection ---------------
//echo "goto :".$path_to_go;
si j'enleve ce commentaire, je retrouve le message d'erreur...

effectivement, si tu met un echo avant un header ça fera une erreur

pour la syntaxe du header c'est celle ci :

header('location: '.$path_to_go);

tu n'avais pas mis l'instruction "location" et j'imagine que $path_to_go c'est l'url ou il faut aller
0

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

Posez votre question
karine666 Messages postés 52 Statut Membre 5
 
hello !

merci pour la reponse. L'adresse où la page doit pointer est bien 'viewcat.php?path='.$path_to_go
(j'appelle la page viewcat en lui passant un argument).

Le problème est que rien ne se passe, et si je lui mets une page bidon (turlututu.php), il ne m'affiche pas d'erreur 404... l'adresse ne change pas, mais la page devient blanche ; sans doute à cause du exit()

ouinnnnnnnnnnn la redirection marche po...

help !

cordialement
0
Mimiste Messages postés 1159 Statut Membre 206
 
Oui le coup de la page blanche c'est à cause du exit() mais il n'est pas sencé y arriver puisqu'il y a un header avant !

tu a bien fait de cette maniere avec l'instruction location et tout ?

header('location: viewcat.php?path='.$path_to_go);
0
karine666
 
hello again !

ca donne rien, help !!
voilà le code qui est executé au debut de la page.

<?php
$path_to_find=$_GET["path"];
if(!empty($_POST["goto"]))
{$path_to_go = $_POST["liste_deroulante_des_categories"];

// Utiliser la redirection ---------------
//echo "goto :".$path_to_go;
header('turlututu.php');
// header('viewcat.php?path='.$path_to_go);
exit();
}
J'ai aussi tesé avec le header d'une page qui existait pas pour voir si ca me declenchait une erreur 404... mais rien du flouchou....
Et si j'enlève le exit, rien ne se passe...
@+ bisous !
0
Mimiste Messages postés 1159 Statut Membre 206
 
Coucou

Roo t'a toujours pas fait comme je t'ai indiqué ^^

regarde tu a mis

header('turlututu.php');

remplace le par

header('location: turlututu.php');

faut pas oublier d'ecrire location: sinon ça redirige pas ^^
0
karine666
 
super ca marche !!
mici super mimiste !
@+ bisous
0