Redirection header("Location:...")

Signaler
-
 DwightShrut -
Salut à tous, alors voilà, j'ai fais une petite technique pour rediriger comme je voulais mes liens avec des balises <a> sans problème, néanmoins, j'ai une autre page ou ce n'est pas des balises <a> mais des header("Location:...") j'aimerai donc faire la même chose avec ça et j'ai essayé quelques trucs mais j'ai des problèmes avec tout ce que j'essaye. Merci pour votre aide.

Voici ce que j'ai fais :
<?php if ($_SESSION['nom']=="personne1"){ 
				?>
				<a href="taches.php?salarie=personne1">
				<?php } elseif ($_SESSION['nom']=="personne2"){ 
				?>
				<a href="taches.php?salarie=personne2">
					<?php } else { ?>
				<a href="taches.php?salarie=personne3">
				<?php } ?>


Et voici le code avec le quel j'aimerai faire pareil :
header("Location:taches.php");
		exit();

3 réponses

Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
bonjour,
qu'as-tu essayé, quels problèmes as-tu rencontrés?

Alors j'ai essayé ce bout de code ci-dessous mais peut importe le salarié connecté, c'est toujours le personne3 qui sortait à la fin et je pense que c'est parce que le dernier "exit();" est en dessous de personne3, donc j'avais essayé d'enlever le exit mais ça ne fonctionne pas :/

J'ai aussi essayé de faire un copier coller du premier code et de remplacer le header par une balise <a> mais ça n'a pas fonctionné non plus (logique).

<?php if ($_SESSION['nom']=="personne1"){ 
				?>
				header("Location:taches.php?salarie=personne1");
		exit();
				<?php } elseif ($_SESSION['nom']=="personne2"){ 
				?>
				header("Location:taches.php?salarie=personne2");
		exit();
					<?php } else { ?>
				header("Location:taches.php?salarie=personne3");
		exit();
				<?php } ?>
> DwightShrut
Du coup je pense que mes if, elseif, else sont bons mais que j'ai un problème par rapport aux exit(); ou au header("Location:...")
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 > DwightShrut
header() est une instruction php, il n'y a aucune raison d'avoir des balises de sortie et d'entrée de php.
<?php if ($_SESSION['nom']=="personne1"){ 
		header("Location:taches.php?salarie=personne1");
		exit();
} elseif ($_SESSION['nom']=="personne2"){ 
		header("Location:taches.php?salarie=personne2");
		exit();
 } else { 
		header("Location:taches.php?salarie=personne3");
		exit();
 } ?>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
je suis étonné par ton code, pourquoi passer le nom via l'url alors qu'il est dans une variable de session?
peux-tu montrer le code de la page taches.php?
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 > DwightShrut
quel autre problème?
>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

Mon problème principal pour lequel j'ai posé ma question sur ce forum, les redirection avec le header("Location:taches.php")
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 > DwightShrut
tu n'as pas lu ma réponse en #5?
>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

Ah non je n'avais pas vu désole, mais j'ai essayé ton code et en fait c'est ce que j'avais déjà essayé aussi, et par exemple, moi étant connecté en personne1, ça me remet toujours à personne3 et peut importe avec quel session je me connecte, ça me met toujours personne3 :/
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 > DwightShrut
as-tu vérifié le contenu de $_SESSION['nom']?
tu n'as pas montré l'ensemble de ton code.
Messages postés
33114
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juillet 2021
3 627
Bonjour,


ce code :
<?php if ($_SESSION['nom']=="personne1"){ 
		header("Location:taches.php?salarie=personne1");
		exit();
} elseif ($_SESSION['nom']=="personne2"){ 
		header("Location:taches.php?salarie=personne2");
		exit();
 } else { 
		header("Location:taches.php?salarie=personne3");
		exit();
 } ?>

Revient à écrire
<?php 
$nom = !empty($_SESSION['nom']) ? $_SESSION['nom'] : "personne3";
header("Location:taches.php?salarie=".$nom);
exit;

 ?>


Mais.. Sachant que tu as le "nom" de la personne en variable de session.... à quoi ça sert de le remettre en variable GET dans l'url sur laquelle tu redirige ?
Le code devrait simplement être :
<?php
header("Location:taches.php");
exit;
?>

et dans ton fichier taches.php, remplacer ton GET pour récupérer le salarié par :
$salarie =  !empty($_SESSION['nom']) ? $_SESSION['nom'] : "personne3";


Quoi qu'il en soit, si tes soucis persistent.. pense à :
- Vérifier que tu as bien mis un session_start sur chacune de tes pages
- Faire un var_dump($_SESSION); pour vérifier ce qu'elle contient


Bonjour,

Merci beaucoup pour ces aides précieuses ! Je vais essayer ça demain ! :)