[PHP] redirection (header)
Sandriine
Messages postés
1400
Statut
Membre
-
Dalida Messages postés 7114 Statut Contributeur -
Dalida Messages postés 7114 Statut Contributeur -
Bonjour,
J'ai une page php qui récupère des informations depuis un formulaire simple, et suivant l'une d'entre elles, une redirection vers une page spéciale est effectuée.
Or, elle ne marche pas, et j'aimerais que vous m'expliquiez pourquoi, et si possible me corriger mon erreur.
Voici ma page php :
J'ai une page php qui récupère des informations depuis un formulaire simple, et suivant l'une d'entre elles, une redirection vers une page spéciale est effectuée.
Or, elle ne marche pas, et j'aimerais que vous m'expliquiez pourquoi, et si possible me corriger mon erreur.
Voici ma page php :
<? $mdp="mmm"; $id=$_GET["id"]; echo "id : ".$id; $mode=$_GET["mode"]; echo "<br>mode : ".$mode; $mp=$_GET["TxtMdp"]; echo "<br>mp : ".$mp; If ($mp == $mdp) { If ($mode == "edit") { $dest="aff.asp?id=".$id; header('Location: aff.asp'); } If ($mode == "add") { header('Location: add.php'); } } ?>
A voir également:
- [PHP] redirection (header)
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Avertissement de redirection ✓ - Forum MacOS
- Avertissement de redirection Google image - Forum Réseaux sociaux
- Php alert ✓ - Forum PHP
3 réponses
Bonjour,
je crois que c'est parce que tu fais des echo ou print avant d'envoyer les headers. si tu veux envoyer des headers il faut que ça soit la première chose que tu envoies vers la sortie (echo, print)
je ferais quelque chose comme ça...
bonne chance
et j'imagine que tu peux aussi faire comme les autres ont dit et utiliser
header("Location: http://www.ton_site.com/add.asp");
je crois que c'est parce que tu fais des echo ou print avant d'envoyer les headers. si tu veux envoyer des headers il faut que ça soit la première chose que tu envoies vers la sortie (echo, print)
je ferais quelque chose comme ça...
<?php $id=$_GET["id"]; $mode=$_GET["mode"]; $mp=$_GET["TxtMdp"]; If ($mp == "mmm") { If ($mode == "edit") { header("Location: aff.asp"); exit; } If ($mode == "add") { header("Location: add.asp"); exit; } } ?>
bonne chance
et j'imagine que tu peux aussi faire comme les autres ont dit et utiliser
header("Location: http://www.ton_site.com/add.asp");
salut,
il faut utiliser une adresse absolue.
source
il faut utiliser une adresse absolue.
Note: HTTP/1.1 demande une URI absolue comme argument de » Location:, y compris le protocole, hôte et chemin absolu. Mais certains navigateurs acceptent les URI relatives. Vous pouvez généralement utiliser les variables globales $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] et dirname() pour construire vous-même une URI absolue
source
OK merci smellems et les autres pour votre aide, en effet c'est simplement les echo qui bloquaient les header, je les ai donc enlevé, ils ne me servaient que pour tester si mes valeurs étaient correctement transmises.
Je précise donc que les
Merci de votre aide, à bientôt
Je précise donc que les
header('Location:page.php');marchent bien, pas forcément besoin d'une URL.
Merci de votre aide, à bientôt
oki !
le coup de l'adresse absolue ce n'est pas une blague…
tu travaillais en local ou en ligne ?
si le 'header()' ne fonctionnait pas à cause d'un envoi ('print()', 'echo()'…) effectué avant, le serveur aurait dû te signaler l'erreur ('Headers already sent…').
pour ton problème, on peut le considérer comme "résolu" ?
le coup de l'adresse absolue ce n'est pas une blague…
tu travaillais en local ou en ligne ?
si le 'header()' ne fonctionnait pas à cause d'un envoi ('print()', 'echo()'…) effectué avant, le serveur aurait dû te signaler l'erreur ('Headers already sent…').
pour ton problème, on peut le considérer comme "résolu" ?