test avec variable de session

Eléphanteau du PHP | 27 Messages

25 sept. 2007, 16:15

voilà...
en gros, je cherche a faire un test au début de ma page pour voir si l'utilisateur est logué

pour cela, lors de la vérification de session, si le mot de passe et le login sont valides, je fais une variable de session $log que je définis a 1
session_register("log");
mon problème vient du test de début de page après...
je voudrais renvoyé l'utilisateur vers la page de login si celui ci n'est pas identifier mais je ne sais pas comment faire...
pouvez vous m'aider?

*je suis sous PHP 8*

merci d'avance

d0m
Mammouth du PHP | 1141 Messages

25 sept. 2007, 16:21

*je suis sous PHP 8*
t'en as de l'avance toi :shock:

en vérifiant si la variable a été créée, sinon tu rediriges avec un header :
if( isset($_SESSION['log']) && ($_SESSION['log']==1) ){
  //l'utilisateur est loggué
}
else{
  //l'utilisateur n'est pas loggué
  header('Location : page_de_login');
}
Modifié en dernier par d0m le 25 sept. 2007, 16:26, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 sept. 2007, 16:22

Pour accéder aux données que tu as enregistré en session tu peux utiliser la variable $_SESSION :
echo $_SESSION['log'];
Tu peux également l'utiliser pour ajouter ou modifier des valeurs en session sans passer par session_register().

Tu peux donc utiliser une structure conditionnelle de type IF pour tester si la variable est définie (isSet()) et vérifier la valeur de cette variable. En fonction du résultat tu peux rediriger l'utilisateur vers une autre page avec la commande header("Location: ....");
*je suis sous PHP 8*
Hum... je ne crois pas non.... essayes plutôt un chiffre entre 3 et 6, ça sera plus plausible ;)

Edit : damn, grilled !
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 27 Messages

25 sept. 2007, 16:33

xD tout mes confuse,
je voulais dire, je suis sous EasyPhP 1.8

par contre, j'ai ce message d'erreur...
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\aviatec\admin.php:3) in c:\program files\easyphp1-8\www\aviatec\admin.php on line 82
:?:
j'ai pas le droit d'utiliser ce header?

d0m
Mammouth du PHP | 1141 Messages

25 sept. 2007, 16:43

en faisant une petite recherche sur le forum tu trouveras ton problème traitée plusieurs fois