Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1656 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Faire passer une variable par un header("Location: ...")

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire passer une variable par un header("Location: ...")

n°1167377
Onesque
Derelict Otter
Posté le 01-08-2005 à 21:45:21  profilanswer
 

Bonsoir :)
 
Voilà mon problème :
 
Sur certaines pages de mon site, je demande à l'utilisateur d'être authentifié pour y accéder.
S'il n'est pas authentifié, je le renvoie vers la page d'authentification : login.php.
 
Je souhaite qu'après son authentification, il soit renvoyé automatiquement vers la page dont il provient. Comme je savais pas comment faire, je me suis dit que j'allais faire passer le nom de la page par une variable d'URL.
 
Donc, s'il vient de la page index.php, le lien vers login.php est sous la forme  
 

Code :
  1. header("Location:login.php?prov=index" )


 
S'il vient de la page compte :  
 

Code :
  1. header("Location:login.php?prov=compte" )


 
...
 
Sur la page de login, une fois la vérification du login faite, j'ai monté la redirection sous cette forme :  
 

Code :
  1. if ($_GET['prov']="index" )
  2. { header("Location:../index.php" ); }
  3. else if ($_GET['prov']="commande" )
  4. { header("Location:commande.php" ); }
  5. else if ($_GET['prov']="compte" )
  6. { header("Location:compte.php" ); }


 
J'étais tout content de mon idée :D, seulement voilà, ca ne fonctionne pas, ça renvoie toujours vers la même page. Vous sauriez me dire ce qui cloche svp, parce que là je vois pas trop :??:
 
Ou peut-être me proposer une autre solution pour parvenir à mes fins?
 
Merci :hello:

mood
Publicité
Posté le 01-08-2005 à 21:45:21  profilanswer
 

n°1167379
kalex
Posté le 01-08-2005 à 21:47:49  profilanswer
 

remplace = par == ;)

n°1167380
pmusa
▓▓▓▓▓▓▓
Posté le 01-08-2005 à 21:49:01  profilanswer
 

il faut mettre == dans tes structures de contrôle et preferer des chemins absolus aux chemins relatifs dans le Location.  :jap:
 
http://www.designlaboratory.net/smileyyyy/grilled.jpg


Message édité par pmusa le 01-08-2005 à 21:49:51
n°1167383
Onesque
Derelict Otter
Posté le 01-08-2005 à 21:57:02  profilanswer
 

Merci à vous deux, je teste de suite avec un ==
 
Je suis pas encore au point là-dessus, quand c'est pour un contrôle on met un double =, et le simple ne sert que pour la déclaration de variables?

n°1167386
kalex
Posté le 01-08-2005 à 21:59:40  profilanswer
 

Onesque a écrit :

Merci à vous deux, je teste de suite avec un ==
 
Je suis pas encore au point là-dessus, quand c'est pour un contrôle on met un double =, et le simple ne sert que pour la déclaration de variables?

Voilà, et trois c'est pour vérifier que deux variables sont identiques ET de même type (string, int, float...) : plus rapide et plus sur.

n°1167543
FlorentG
Unité de Masse
Posté le 02-08-2005 à 09:34:29  profilanswer
 

Accessoirement, on ne met d'URL relative dans un header, faut toujours mettre l'adresse absolue :

header('Location: http://www.pouet.com/index.php?prov=index');


 
Et ceux qui demandent pourquoi n'ont qu'a aller lire la doc de PHP et le protocole HTTP 1.1 ;)


Message édité par FlorentG le 02-08-2005 à 09:34:43
n°1167803
Onesque
Derelict Otter
Posté le 02-08-2005 à 13:02:18  profilanswer
 

Pour le moment, je suis un peu embêté pour les adresses absolues, vu que je travaille en local et que je ne connais aps encore l'adresse qui accueillera le site une fois mis en ligne, mais je vais aller jeter un oeil aux raisons qui font que c'est nécessaire ;) :D
 
Sinon vu que le traitement de ma page login.php est ds cette même page, ma variable de provenance ne repasse pas une fois le script executé, donc je vais devoir reprendre tout ca :/...

n°1167888
FlorentG
Unité de Masse
Posté le 02-08-2005 à 14:40:15  profilanswer
 

Aucun problème sur le fait que ce soit en local ;) Y'a ce qu'il faut pour trouver dans quel dossier et sur quel serveur on est

n°1168001
Onesque
Derelict Otter
Posté le 02-08-2005 à 15:45:56  profilanswer
 

C'était juste qu'étant en local et comptant passer sur le web bientôt, j'ai un peu la flemme de me retaper toutes mes pages pour modifier les header :D
 
A moins que je crée le chemin absolu à l'aide d'une variable, qui dépendrait de l'endroit où l'on se trouve. Je vais peut-être faire ça tout compte fait.
 
Sinon c'était bien le double égal qu'il fallait pour que ca fonctionne ! :jap:

n°1168052
FlorentG
Unité de Masse
Posté le 02-08-2005 à 16:11:38  profilanswer
 

Y'a ce qu'il faut comme variables genre dans $_SERVER pour trouver où on est et créer une adresse absolue :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Faire passer une variable par un header("Location: ...")

 

Sujets relatifs
variable static[php] [RESOLU] lancer un fichier excel avec un header
Initialisation complexe d'une variable globale ("code static")recuperation de valeur d une variable
[Résolu] variable VBAafficher dans une variable contenant du xml
[excel] assigner numéro de ligne à variable[php] un script dans une variable d'url...
[RESOLU] Envoi de POST vers un autre serveur avec HEADERcomment passer a la ligne dans un label
Plus de sujets relatifs à : Faire passer une variable par un header("Location: ...")


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR