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

  FORUM HardWare.fr
  Programmation
  PHP

  Lien HTML Href > perte de la valeur des var PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lien HTML Href > perte de la valeur des var PHP

n°692882
bryanack
Posté le 05-04-2004 à 17:00:49  profilanswer
 

Hello
Après avoir réussi l'accés log et le controle de la page suivante (redirigée) avec un en tete de ce type:
<?php
session_start();
if ($_GET['statut'] !="admin" )
{ header("Location:../login.php" );
}
?>

 
Dans cette page j'ai des liens HREF dont le contenu est controlé par la même en tête, or il me redirige vers la page login...
 
Qué passa ?
 
Merci  :pt1cable:

mood
Publicité
Posté le 05-04-2004 à 17:00:49  profilanswer
 

n°692902
T509
$job-&gt;GetJob(now)
Posté le 05-04-2004 à 17:07:49  profilanswer
 

Rien compris ! explique !


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°692918
bryanack
Posté le 05-04-2004 à 17:14:30  profilanswer
 

Tout d'abord merci :)
 
En fait j'ai une page login.php avec controle acces qui m'envoie vers index.php si c'est ok
 
...
$statut="admin";  
session_register("statut" );  
header("Location:index.php?statut=$statut" );
...

 
En entete de index.php j'ai mis ça pour controler l'acces, no problemo ça marche:
 
<?php if ($_GET['statut'] !="admin" )
{ header("Location:login.php" );
}?>

 
Dans cette page index.php j'ai mis des liens vers d'autres pages test.php qui ont la meme entete pour vérifier l'autorisation d'acces... Or là quand je sélectionne un lien il me renvoie à la page login.php...
 
Bizarre non ?? :whistle:

n°693118
omega2
Posté le 06-04-2004 à 03:39:12  profilanswer
 

Si t'as fait  
 
echo 'href="page.php?statut=$statut';
 
c'est normal que ca marche pas vu que la bonne variable c'est $_GET['statut']
Si tu nous montrait également un des liens dont tu parles et le test dans la nouvelle page, ca sera surement plus facile de répondre sans faire des supositions initiales. ;)

n°693174
Hermes le ​Messager
Breton Quiétiste
Posté le 06-04-2004 à 09:09:25  profilanswer
 

bryanack a écrit :

Tout d'abord merci :)
 
En fait j'ai une page login.php avec controle acces qui m'envoie vers index.php si c'est ok
 
...
$statut="admin";  
session_register("statut" );  
header("Location:index.php?statut=$statut" );
...

 
En entete de index.php j'ai mis ça pour controler l'acces, no problemo ça marche:
 
<?php if ($_GET['statut'] !="admin" )
{ header("Location:login.php" );
}?>

 
Dans cette page index.php j'ai mis des liens vers d'autres pages test.php qui ont la meme entete pour vérifier l'autorisation d'acces... Or là quand je sélectionne un lien il me renvoie à la page login.php...
 
Bizarre non ?? :whistle:  


 
on utilise plus session_register.
 
On utilise $_SESSION['variable'] = "ce que tu veux";

n°693190
bryanack
Posté le 06-04-2004 à 09:36:37  profilanswer
 

Hello
 
Et bien dans mes liens j'utilise la meme en tete
 
<?php if ($_GET['statut'] !="admin" )  
{ header("Location:login.php" );  
}?>

 
Mais l'accés à ces pages test.php ne se fait pas par un HEADER location: mais un href en html.

n°693193
bryanack
Posté le 06-04-2004 à 09:40:01  profilanswer
 

Exemple:
apres la page login.php j'accède à index.php avec l'entete qui va bien pour vérifier l'acces.
<?php if ($_GET['statut'] !="admin" )  
{ header("Location:login.php" );  
}?>

Dans cette page j'ai des liens <a href="../recherche/test.php">  
avec la meme entete pour controler l'acces, or là il me sort et
me renvoie vers la page login.php
 
Voilà, j'espère que j'arrive à me faire comprendre  :)  
 
merci à vous en tout cas

n°693202
deliriumtr​emens
sic transit intestinal...
Posté le 06-04-2004 à 09:46:16  profilanswer
 

Ben oui, c'et même logique, tu utilises $_GET plutôt que $_SESSION dans tes "tests d'en-tête"
 
tu dis que, dans ta page index.php, tu as des liens vers test.php (par exemple).  
 
Or dans test.php , tu nous dis que tu as ton "entête" de vérification de statut basée sur un test de $_GET['statut'].
 
Il paraîtrait plus logique de faire un test sur $_SESSION['statut'] .
 
Sinon dans tous tes liens (par exemple sur ta page index), tu devrais faire <a href="../recherche/test.php?statut=<?=$statut?>">.
 
$_GET= variables passées par l'url
$_SESSION=variables de session.
 
Je suis pas sûr d'avoir été clair, mais je me comprends ;)


Message édité par deliriumtremens le 06-04-2004 à 09:46:56
n°693209
bryanack
Posté le 06-04-2004 à 09:50:51  profilanswer
 

PAs très clair mais je vais chercher dans cette voie et tester ça :)
Je vous tiens au courant :)
 
merci :)

n°693215
deliriumtr​emens
sic transit intestinal...
Posté le 06-04-2004 à 09:53:35  profilanswer
 

Le plus simple, tu te fais une fonction à 2 sous
 

Code :
  1. Function secure()
  2.     {
  3.     if (!($_SESSION['statut']) || ($_SESSION['statut']!='admin'))
  4.         {
  5.         Header("Location: login.php" );
  6.         exit();
  7.         }
  8.     }


 
Et au début de toutes tes pages nécessitant une protection tu fais
 

Code :
  1. session_start();
  2. secure();


 
et pis oilà.


Message édité par deliriumtremens le 06-04-2004 à 09:53:57
mood
Publicité
Posté le 06-04-2004 à 09:53:35  profilanswer
 

n°693219
deliriumtr​emens
sic transit intestinal...
Posté le 06-04-2004 à 09:59:06  profilanswer
 

Je te conseillerais juste de revoir un petit tutorial sur les superglobales ($_SESSION, $_GET, $_POST et compagnie) pour savoir ce qu'elles contiennent (sans rire, d'après ton code ça n'a pas l'air encore clair).
 
Plus un petit tuto sur les sessions.
 
M'enfin tu fais ce que tu veux, hein...


Message édité par deliriumtremens le 06-04-2004 à 09:59:28
n°693226
bryanack
Posté le 06-04-2004 à 10:04:11  profilanswer
 

Ca roule je vais faire tout ça !
J'ai toute la matinée devant moi :)
 
Merci en tout cas !!

n°693243
bryanack
Posté le 06-04-2004 à 10:20:55  profilanswer
 

bin flute !
 
sur login.php j'ai bien ma variable statut qui s'initialise avec la valeur admin
$_SESSION['statut'];    
$statut="admin";
header("Location:index.php?statut=$statut" )

 
et ma page test pour le moment j'ai mis ça en tete mais elle ne récupère pas la valeur de statut
session_start();
if (!($_SESSION['statut']) || ($_SESSION['statut']!='admin'))  
{  
Header("Location:login.php" );  
exit();  
}

 
??

n°693245
deliriumtr​emens
sic transit intestinal...
Posté le 06-04-2004 à 10:23:22  profilanswer
 

hrmmmpff... Donne le code complet de login.php, on gagnera du temps !
 
Parce que bon

Code :
  1. $_SESSION['statut']; //génial, ça sert à quoi ?
  2. $statut="admin";//rien à voir avec la session

n°693247
bryanack
Posté le 06-04-2004 à 10:26:44  profilanswer
 

Hop: login.php
 
<?php
$erreurlog="";
$statut="";
$id="";
$pass="";
// pour éviter les erreurs d'exécution UNDEFINED VARIABLE
if($HTTP_POST_VARS['valider']=="ok" )
{
session_start();
$id=$HTTP_POST_VARS["id"];
$pass=$HTTP_POST_VARS["pass"];
if(($id=="aa" )AND($pass=="aa" ))
{
$_SESSION['statut'];  
$statut="admin";  
header("Location:index.php?statut=$statut" );
}
else
{
$erreurlog=1;
}
}

 
 ?>

n°693263
deliriumtr​emens
sic transit intestinal...
Posté le 06-04-2004 à 10:37:46  profilanswer
 

Bon.
 
- au lieu de $HTTP_POST_VARS[''], utilise $_POST[''].
 
- ensuite, on retrouve le problème soulevé dans les messages plus haut.
 
Tu écris
 
$_SESSION['statut'];
ce qui ne correspond à rien, puisque tu ne lui affectes aucune valeur.
 
Tu affectes une valeur "admin" à la variable $statut, mais ça n'a rien à voir !
 
Pour affecter une valeur à $_SESSION['statut'], il faut faire comme pour une autre variable, mettre un = (eh oui)
 
->pour cette partie, ton code devient
 

Code :
  1. if(($id=="aa" )AND($pass=="aa" ))
  2. {
  3. $_SESSION['statut']="admin";
  4. header("Location:index.php" );//on vire la partie après le ?, qui ne sert à rien, puisqu'on va jouer sur $_SESSION et non pas sur $_GET
  5. }


 
Ensuite, sur tu utilises la fonction que je t'ai donnée pour lancer le test sur tes pages à protéger.


Message édité par deliriumtremens le 06-04-2004 à 10:38:56
n°693276
bryanack
Posté le 06-04-2004 à 10:45:06  profilanswer
 

Superbe !
 
J'ai lu un autre tutorial en même temps !
Je comprends mieux maintenant !
 
Merci à toi en tout cas !


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

  Lien HTML Href > perte de la valeur des var PHP

 

Sujets relatifs
passage de variable par url avec esay php[Php et classes] valeur par default pour des parametres de fonctions
[PHP] Help changement imageExtraire le nom du lien d'une url
[PHP] [SESSIONS] tuning dreamweaverrecherche aide pour script html
[PHP/MYSQL] Créer table avec des champs issus de variables[résolu] récuperer la valeur de l'opération "power (10,2) "
problème Php / popup 
Plus de sujets relatifs à : Lien HTML Href > perte de la valeur des var PHP


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