Page 1 sur 1
Faire une redirection apres l'execution d'un get
Posté : 13 avr. 2007, 15:32
par TimaL
Bonjour,
voici mon probleme.
J'effectue un get pour traiter une fonction, jai donc apres dans le lien un truc du genre :
www.index.php?command=listfile
est-il possible que juste apres que se soit effectue cette fonction ait lieu une redirection?
Est-ce possible en PHP? Ou faut-il utiliser JavaScript?
Dans un premier temps, j'aurais donc
www.index.php?command=listfile puis instantanement apres
www.index.php.
Voyez-vous ce que je veux dire?
Merci a vous!
Bon weekend
Tim
Posté : 13 avr. 2007, 15:41
par charabia
Après ta fonction tu peux utiliser en PHP : header() et en Javascript : window.location.
Fait une petite recherche dessus tu verras

Posté : 13 avr. 2007, 15:43
par Ryle
Tant que tu n'as pas envoyé de code au navigateur (echo, print, code html, espace, retour charriot, etc.) c'est possible en php, il te suffit d'utiliser la fonction header() en spécifiant l'adresse vers laquelle rediriger

:
<?php
... // ton traitement
header('Location: mapage.php'); // ta redirection
exit(); // arrête le traitement après la redirection
?>
Edit : Grumpf... grilled

Posté : 15 avr. 2007, 14:40
par TimaL
Merci pour vos réponses!
Je pense que je dois utiliser javascript, car mon head en contient déja et j'ai pas mal de echo dans la fonction!
voici le javascript dans le head
<script language="JavaScript">
function validerBouton1()
{
form1.action="index_chheckbox.php?command=renameFile";
window.location.href = "fichier2.htm";
form1.submit();
}
function validerBouton2()
{
form1.action="index_chheckbox.php?command=deleteFile";
window.location.href = "fichier2.htm";
form1.submit();
}
</script>
Je voudrais qu'après avoir exécuté "command" il y'est une redirection sur fichier2.htm. Une fois qu'on a cliqué sur le bouton en fait.
actuellement la redirection n'a pas lieu.
Merci à vous.
Tim
Posté : 16 avr. 2007, 10:04
par charabia
Sur ton script tu fais une redirection avant le "clic" sur le bouton submit.
Posté : 16 avr. 2007, 11:18
par Ryle
Avant la soumission plutôt qu'avant le clic je dirais
Mais même dans l'autre sens, je n'en vois pas trop l'intérêt.. pourquoi ne te contentes tu pas de soumettre le formulaire à index_chheckbox.php et de laisser cette page s'occuper de la redirection avec un header() ou un méta, ou du javascript s'il le faut ?

Posté : 18 avr. 2007, 11:13
par TimaL
Salut, merci à vous.
C'est ici que je dois faire ma redirection?
Code : Tout sélectionner
<input type="button" name="bouton1" value="Rename" onclick="validerBouton1()" />
<INPUT Type="text" Name="entertext" value="Enter the new name" Size="18" Maxlenght="200">
<input type="button" name="bouton1" value="Delete" onclick="validerBouton2()" />
Merci
Tim
Posté : 18 avr. 2007, 11:31
par charabia
Non Timal, Ryle te parle de la page index_chheckbox.php, là où tu vas faire le traitement. C'est là que la redirection va se faire avec l'une des 3 méthodes indiquées par Ryle.
Posté : 18 avr. 2007, 11:58
par TimaL
D'accord mais pour que les fonctions s'éxécute je dois avoir dans le lien soit
-index_chheckbox.php?command=renameFile
ou soit
-index_chheckbox.php?command=deleteFile
donc je ne peux pas mettre dans mes deux
form1.action=
l'adresse index_chheckbox.php sinon les deux fonctions ne s'éxécuteront pas.
Bon je pense que je ne comprend pas ce que vous voulez me dire

Posté : 18 avr. 2007, 12:01
par charabia
Dans cette page : index_chheckbox.php, à un moment ou un autre j'imagine que tu testes la variable "command" et selon chaque cas tu fais un traitement ou un autre.
C'est au niveau de ces deux traitements que tu dois faire la redirection.
Posté : 18 avr. 2007, 12:39
par TimaL
exact dans cette page j'ai un switch pour tester command :
Code : Tout sélectionner
switch($command)
{
case "renameFile":
RenameFile();
break;
case "deleteFile":
DeleteFile();
break;
default:
ShowFiles();
}
je vais essayer de rediriger entre la fonction et le break, merci!
[/code]
Posté : 18 avr. 2007, 12:56
par TimaL
La redirection header ne fonctionne pas :
Warning: Cannot modify header information - headers already sent by (output started at /home.4/c/e/d/index_chheckbox.php:25) in /home.4/c/e/d/index_chheckbox.php on line 1977
En ligne 25 j'ai :
<script language="JavaScript">
Les redirections meta et javascript doivent etre misent dans le header donc je ne peux pas les utiliser dans mon switch n'est ce pas?
Merci
Posté : 18 avr. 2007, 14:15
par charabia
Tu peux faire un window.location="ta_page.php" après ton traitement.