|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Bonjour à tous, voici mon problème :
Je possède une page de connexion à mon site (index.php). Lorsque l'utilisateur se connecte, il arrive sur ma page d'accueil. Cependant, je n'arrive pas à gérer le fait qu'il soit connecté pour les autres pages de mon site. Voici comment je procède : J'ai un script qui me permet de vérifier que l'utilisateur est bien connecté : Code :
Et j'appelle ce script au début de chacune de mes pages. Donc si l'utilisateur s'est correctement loggé, il devrait pouvoir accéder à chaque page sans être redirigé vers la page d'accueil avec un message d'erreur non? Et bien là ce n'est pas le cas, à chaque tentative d'accès à une nouvelle page, ça rentre dans la condition de mon script : Code :
if(!isset($_SESSION['sessionOuverte']) || !$_SESSION['sessionOuverte']){} Je ne vois vraiment pas où je déconne.. Si quelqu'un peut me permettre d'ouvrir les yeux .. ^^' Merci beaucoup d'avance! EDIT: Je précise que session_start(); est présent au début de chacune de mes pages. |
||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() |
Bonjour,
Pourquoi tes variables sont elles en $_POST ? Elles ne sont postées qu'une seule fois pour vérifier si ton couple login / password existe, après selon ton script c'est via une session ou un cookie mais plus en $_POST. Code :
if(isset($_POST['login']) && isset($_POST['password']) && !empty($_POST['login']) && !empty($_POST['password'])){ |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Et bien si cette condition est exécutée c'est que l'utilisateur vient du formulaire de connexion (car la condition précédente permet de savoir si la variable de session existe et donc que l'utilisateur s'est déjà connecté). Donc logiquement, le test de ces variables $_POST ne doit se faire que la première fois, lorsque l'utilisateur essaie de se connecter pour la première fois. Dans les autres pages, il ne devrait pas s'effectuer puisque la variable de session $_SESSION['sessionOuverte'] est censée exister. Le script sert donc de sécurité au cas où quelqu'un déciderait d'accéder à une page sans ne s'être jamais connecté.
J'espère réussir à me faire comprendre ^^' |
|
|
00
|
|
|
#4 | ||||
![]() ![]() |
Bonjour,
le code que tu a donné ne vaut que pour la page index.php ! (-> traitement du formulaire d'identification) Pour les autres pages : _protec_page.php Code :
Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||||
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Merci de vos réponses.
jreaux62 ce que tu me proposes correspond exactement à ce que je fais. Malgré tout, j'ai essayé comme tu m'as dit, mais ça ne marche toujours pas. Ah, je viens de supprimer le $_SESSION['sessionOuverte']= null; au début de la page index.php et maintenant ça marche.. Comment cela se fait-il..? Et ne faut-il pas supprimer la variable de session si l'utilisateur revient sur la page de connexion? Car si on ne le fait pas et qu'il décide de se reconnecter, même s'il entre des identifiants incorrects, la variable de session étant existante, il arrivera à accéder au site. |
|
|
00
|
|
|
#6 | ||
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Bon j'ai "résolu" le problème en passant un paramètre lorsque l'utilisateur clique sur le bouton de déconnnexion du site, ainsi, l'annulation de la variable de session ne s'effectue que si ce paramètre est présent :
index.php Code :
|
||
|
|
00
|
|
|
#7 |
![]() ![]() |
Tu es sûr de bien comprendre ce que tu dis ??
C'est juste une question de LOGIQUE : 1/ l'utilisateur arrive sur la page index (identification) -> SI PAS "identifié" -> on affiche le formulaire d'identification ...-> formulaire rempli : on vérifie les login et mpd ......-> SI login et mdp OK : on valide "identifié" (on affiche "bonjour!" ou on redirige vers une page "mon profil" par exemple) -> SI DEJA "identifié" -> pas besoin du formulaire ! (on affiche "bonjour!" ou on redirige vers une page "mon profil" par exemple) 2/ sur une page protégée -> SI PAS "identifié" -> on redirige vers la page index (identification) -> SI DEJA "identifié" -> on affiche la page ... 3/ "déconnexion" -> on supprime "identifié"
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Désolé, je me suis mal exprimé :
La variable de session est passé à "null" au début de la page index.php. Une fois que l'utilisateur essaie de se connecter à partir de cette page, le traitement se fait sur la page accueil.php contenant mon script de vérification. La variable de session est donc créée après la page index.php. C'est pour cela que le fait de mettre $_SESSION['sessionOuverte']=null; dans index.php ne devrait LOGIQUEMENT pas affecter ma variable qui se créé APRES. Cette ligne sert juste à supprimer la variable si l'utilisateur décide de revenir sur l'écran de connexion un moment APRES s'être connecté. |
|
|
00
|
|
|
#9 | |
![]() ![]() |
Citation:
en plus : soit elle est "true", soit elle est "false", mais pas "null" ! Et pourquoi veux-tu qu'un utilisateur DEJA connecté ait envie de se RE-connecter ??? même s'il retourne sur la page index, c'est à toi (au programme) de le rediriger !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
00
|
|
|
#10 | ||||
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
null supprime l'existence d'une variable.
Bon, je sens que tu me prends de haut, mais je te remercie quand même de ton aide. Voici le résultat final : index.php : Code :
Code :
Merci quand même, l'amabilité et l'humilité, ce sera pour une autre fois! A bientôt |
||||
|
|
01
|
|
|
#11 | |
![]() ![]() |
Citation:
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
01
|
|
|
#12 | |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Citation:
Sur ce, à bientôt. |
|
|
|
01
|
|
|
#13 |
![]() ![]() |
C'est vrai, j'abuse parfois des "!!" ou des "???" ...
Ca permet juste d'"animer" le discours ! Un peu comme un méditerranéen qui parle "en faisant des grands gestes" ... Pas de quoi se fâcher, ok ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
01
|
|
|
#14 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Je suis basque, alors disons que j'ai le sang chaud aussi ok?
|
|
|
01
|
|
|
#15 |
![]() ![]() |
Tout s'explique !
J'avais un bon copain à ... Urrugne : "Jérome du Sud" ! (moi, c'était "Jérome du Nord" !!) On s'était connu (aussi !) sur ce forum (je l'avais aidé à programmer son site ...) On est ... "un peu fâché" depuis ... Aucun des deux n'a voulu perdre au "concours des grandes gueules" !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#16 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Mdr t'en fais pas chuis pas une grande gueule, loin de là. J'ai juste le sang chaud
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com