PHP / MySQL / HTML - récupération données
Résolu
Stargirlfr
Messages postés
1175
Date d'inscription
Statut
Membre
Dernière intervention
-
Stargirlfr Messages postés 1175 Date d'inscription Statut Membre Dernière intervention -
Stargirlfr Messages postés 1175 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- PHP / MySQL / HTML - récupération données
- Fuite données maif - Guide
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- Supprimer les données de navigation - Guide
- Logiciel de récupération de données - Guide
2 réponses
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';
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';
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 !
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 !