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.