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

Résolu/Fermé
Stargirlfr Messages postés 1175 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 12 février 2017 - 1 déc. 2009 à 02:31
Stargirlfr Messages postés 1175 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 12 février 2017 - 1 déc. 2009 à 21:56
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 !
A voir également:

2 réponses

Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
1 déc. 2009 à 08:30
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';
0
Stargirlfr Messages postés 1175 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 12 février 2017 356
1 déc. 2009 à 21:56
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 !
0