PHP / MySQL / HTML - récupération données

Résolu/Fermé
Signaler
Messages postés
1174
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
-
Messages postés
1174
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
-
Bonjour à tous,

Mon problème est le suivant :

J'ai créé un site internet. Pour avoir accès à certaines pages, il est nécessaire de s'inscrire.
Je possède une fonction controleAcces(), qui, comme son nom l'indique, contrôle l'accès aux pages. Si l'utilisateur est membre et connecté, alors il a accès, sinon, non.

Pour cela, je récupère le pseudo et le mot de passe par un POST, lorsque l'utilisateur rempli le formulaire de connexion. Par la suite, j'enregistre ces variables dans la session (par : $_SESSION['pseudo'] = $pseudo), ce qui me permet de les avoir dans toutes mes pages internet et donc, d'identifier en permanence l'utilisateur.

Tout cela fonctionne parfaitement, mais uniquement quand l'utilisateur est connecté. Bien entendu, les valeurs de $_SESSION['pseudo'] n'existent plus lorsque l'internaute n'est pas connecté, donc, uniquement visiteur. Dans ce cas, j'obtiens les erreurs suivantes :

Notice: Undefined index: pseudo in C:\wamp\www\[INFO4007] PROJET\profil.php on line 7

Ma question est la suivante : Comment réussir à retenir les informations de l'utilisateur connecté afin que je puisse le reconnaître sur chacune des pages, et ne pas avoir d'erreur (mais afficher, comme ma fonction controleAcces() l'a prévu : "il est nécessaire d'être connectée pour avoir accès à cette page") ??

J'espère avoir été assez claire, car mon problème n'est pas facile à expliquer !
Merci d'avance pour votre aide !

2 réponses

Messages postés
400
Date d'inscription
vendredi 2 octobre 2009
Statut
Membre
Dernière intervention
23 décembre 2009
67
Bonjour

Pour avoir accès aux variables $_SESSION il est nécessaire de faire un session_start() au début de chacune de tes pages.
Avec session_start() : Si une session existe, elle sera réouverte, sinon une session sera crée.

Pour un internaute visiteur : il suffit de rajouter la condition if (isset($_SESSION['pseudo']))
Par exemple :


if (isset($_SESSION['pseudo']))
echo 'Utilisateur identifié';
else
echo 'Visiteur';
Messages postés
1174
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
347
Bonjour Pilow !

Merci beaucoup pour ta réponse !
En effet, je n'avais pas pensé à attribuer la valeur "Visiteur" si la personne n'est pas loggée.

En fait, dans toutes mes pages, $_SESSION['pseudo'] est égal au pseudo de l'internaute, que je récupère par un formulaire (méthode POST). Donc, quand la personne n'est pas inscrite, $_SESSION['pseudo'] n'existe pas, donc erreur. Mais, en effet, j'aurai pu poser utiliser ta condition !

En fait, j'ai contourné le problème en créant un "double" de certaines de mes pages web avec accès restreint au site, en ajoutant _visiteur au nom de la page. Du coup, j'ai comme 2 sites. Le premier, restreint, pour les visiteurs, le 2ème, dès que la personne se logg, avec accès à toutes les pages.

En tout cas, je te remercie une nouvelle fois pour ta réponse si rapide !
Bonne continuation !