PHP : Redirection par un bouton + liste

Fermé
karine666 Messages postés 48 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 18 décembre 2012 - 8 mars 2009 à 18:46
 karine666 - 14 mars 2009 à 15:11
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
8 mars 2009 à 18:53
allo, tu peut le faire en javascript,cé moins compliqué
0
Utilisateur anonyme
8 mars 2009 à 19:02
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
8 mars 2009 à 19:10
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 48 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 18 décembre 2012 5
9 mars 2009 à 00:43
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
9 mars 2009 à 01:03
// 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 48 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 18 décembre 2012 5
9 mars 2009 à 10:55
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
9 mars 2009 à 12:12
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
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 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
14 mars 2009 à 14:56
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
super ca marche !!
mici super mimiste !
@+ bisous
0