ESPACE MEMBRE - création en php

Résolu/Fermé
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 25 sept. 2008 à 10:30
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 25 sept. 2008 à 16:29
Bonjour,

Je voudrais créer un srcipt d'espace membre.

J'en ai deja testé une demi-dizaine (rjv, py, zl,....) mais ils passent tous par un serveur mail, ou il n'on pas d'interface de configuration ....

ils ne répondent pas a mes besoins a savoir :
- l'admin crée un compte login+mot de passe (chiffré dans la bdd)
- l'utilisateur reçois par mail ses identifiants .(depuis une boite générique, cette partie ne posera pas de souci)
- l'utilisateur se connecte avec ses identifiants, et on l'oblige a modifier son mot de passe dès sa première connection.
-
-
-
30 jour plus tard, si son mot de passe a plus de 30 jours, il devra le modifier.

Comment gérer et mettre en place un espace membre de ce type ??
Quelles script utiliser, le nombre de pages php, leur rôles....
pouvez vous m'éclaircir svp ?

Merci d'avance
A voir également:

19 réponses

liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 10:32
C'est quel partie qui t'embête exactement ?
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 10:55
je veux tout faire ! et je n'ai actuellement rien !

en faite c'est flou je ne vois pas encore comment réaliser tout ça
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 11:00
Je pourrai bien t'aider pour quelques trucs mais le code complet... J'aurai trop de mal, je lutte aussi pour mon site lool

Si tu as des questions plus spécifiques...
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 11:12
merci, pour commencer ..

Je crée un formulaire pour que l'administrateur crée des compte, je saurais faire,
---- comment chiffrer les mots de passes pour les stocker dans la BDD en chiffré ?

je crée un formulaire sur mon site pour une authentification, je saurais faire.
---- comment faire en sorte que l'authentification n'est demandé qu'à une partie du site ? (comment proteger certaines pages et pas d'autres)
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 12:01
- Formulaire

Pour que le MDP soit enregistré dans ta BD crypté, le formulaire¨doit être sous cette forme :

<label for="password"> Mot de passe : </label>
<input type="password" name="password" id="password"/>

type="password" se charge d'envoyer le mot de passe sous une forme cryptée.

- Authentification

Tu doit utiliser les sessions... Les sessions enregistrent des variable que tu défini. Tu peux créer ces variables avec ta page de connexion. Les variables seront donc par exemple le pseudo du visiteur, etc. La session se charge de les transmettre d'une page à l'autre. Il suffit de récupérer les variables sur chacune de tes pages et de les comparer a ta BD pour déterminer si la personne correspondant a ces variables possède un droit d'accès a cette page. Pour les pages public, il suffit de ne pas faire cette vérification et tout le monde pourra y accéder. Dans ce cas, tu peux utiliser ta session pour du bonus^^ Grâce aux session tu peux par exemple écrire "Bonjour 'pseudo'".... Cela peut être intéressent.

Un pdf sur les Sessions : http://www.team-sld.fr/upload/sessions_PHP.pdf
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 12:15
j'ai deja utiliser des variables de session, je ne sais pas si c'est tres fiable :s


En faite quand tu as un url du type ;
http://www.monsite.com/mon_espace1/mon_document_secret

avec des variables de session tu doit avoir :
http://www.monsite.com/mon_espace1/mon_document_secret=paul

et tu peu facilement te faire passer pour quelqu'un d'autre :
http://www.monsite.com/mon_espace1/mon_document_secret=c_est_pas_paul

en modifiant l'url ....
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 12:47
La quasi totalité des sites utilisent les sessions... Comment font-ils ?

Avec les session on peux créer un ID de session qui est une chaine de caractère impossible a deviner... tu peux lire le pdf que je t'ai donné en page 8 ils en parlent.

Rien n'est parfait mais il n'y a pas de meilleur moyen que les sessions
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 13:03
Donc en gros dans ma table j'aurais les champs :

ID......................clef primaire
Login..................Le login de l'utilisateur
Mot de passe.......son mot de passe
Session................La variable à afficher dans l'URL

et a chaque connexion dans l'url j'aurais cette variable session qui est une chaine de 10 caractère aléatoire affecté a chaque utilisateurs.

Est ce bien cela ?
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 13:25
L'ID de session est créé par la fonction de session, il change donc a chaque connexion et est détruit pendant la déconnexion. Il ne peux donc pas être stocké pour être réutilisé.

C'est ton "Login" ou "ID" qui seront envoyés lors de la connexion qui seront alors lié à l'ID de session. Dans ce cas, la session enregistre provisoirement les variable suivante (au minimum, tu peux en enregistrer plus) :
- ID de session
- login

ensuite quand la personne ouvre les pages, c'est l'ID de session qui est récupéré puis tu peux vérifier sur chaque page si le login lié a cet ID correspond a ce qui est dans ta BD.

Par contre si tu veux 2 niveau d'accès, il faudra que mette dans ta table un champ du genre : "level" "0 - 1 - etc..." par exemple pour déterminer les droits d'accès :
- 0 = visiteurs (accès aux pages publiques)
- 1 = membre (accès à certaines pages membres)
- 2 = admin (accès a toutes les pages)
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 13:35
Dans l'url, c'est l'ID session qui sera donc afficher? et pas le login ??

l'histoire de level m'interesse fort bien :)
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 13:31
j'ai crée mon formulaire d'authentification, mes deux champs texte, pourrais tu me donner un exemple de script ?
Si j'ai bien capté, je fais des requêtes sur ma BDD


if utilisateur existe
------comparer le mot de passe
------if mot de passe bon
-------------------bienvenu Mr blabla,
-------------------continuer la navigation sur cette page
------else
-------------------echo"mot de passe incorrecte"
------endif
else
------echo"l'utilisateur n'existe pas"
------rester sur lapage de conneion
endif


c'est bien sa?
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 13:48
il est pas mal le document :) (tu es de supelec ?)

Sinon le session_start(); (en bas de la page 2 ) ne doit pas apparaitre sur mon formulaire ?
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 14:03
Je n'est pas fait le doc, je l'ai trouvé je ne sait plus où lol

le session start () tu le met sur chacune de tes page, c'est ce qui récupère les session existantes et en créer de nouvelles. Dans ton formulaire tu t'en sert pour savoir si la personne est déjà loggée, dans ce cas tu la redirige vers son compte par exemple.

Je vois la page formulaire comme suit :

session start ()

if session existante
___redirection
else
___if formulaire posté
______recuperer les variables du formulaire et faire un requête sql pour comparer avec la BD
______if le login et/ou passe sont mauvais
_________echo "mauvais passe" + redirection sur formulaire
______else infos correctes (login et pass)
_________les enregistrer dans les variables de sessions
_________redirection vers la page de ton choix (compte par exemple)
___else pas de formulaire posté
______on affiche le formulaire
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 14:09
Pour les lvl il suffit que tu est un champ dans ta BD pour déterminer le lvl de chaque personne.

Sur chaque page ayant besoin d'un niveau d'accès :

session start ()
on recupère les variables de session
on fait une requête pour récupérer le lvl de la personne
if lvl = 0
___ echo "Pas les droits d'accès" = redirection
else lvl = 1
___ affichage de la page

ou alors

session start ()
on recupère les variables de session
on fait une requête pour récupérer le lvl de la personne
if lvl = 0 ||(ou) lvl = 1
___ echo "Pas les droits d'accès" = redirection
else lvl = 2
___ affichage de la page
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 14:13
ah ok, il est simple a comprendre, le document sa va ....
pour le moment j'ai fait :

if formulaire posté
recuperer les variables du formulaire et faire un requête sql pour comparer avec la BD
infos correctes (login et pass)
les enregistrer dans les variables de sessions




par contre je n'ai pas compris a quoi vont nous servir ces 4 variables :

//Les quatre lignes de code précédentes peuvent aussi s’écrire avec les fonctions de sessions :
//Les deux méthodes sont équivalentes. A vous de choisir !
$page_count=0 ;
session_register("page_count"); //La variable $page_count fait maintenant partie de la session
$name = $prenom ;
session_register("name");
$author_id = $id ;
session_register("author_id");
$logged = 1;
session_register("logged");
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 14:18
Ceci est une seconde méthode pour faire pareil que ce qui est avant (c'est français ça?)

"//Les quatre lignes de code précédentes peuvent aussi s’écrire avec les fonctions de sessions :"

Donc ce que tu as mis est pareil (+ou-) à
$_SESSION[‘page_count’] = 0 ;
$_SESSION[‘name’] = $infos[prenom] ;
$_SESSION[‘author_id’] = $infos[id] ;
$_SESSION[‘logged’] = 1 ;

qui est juste avant.
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 14:24
oui j'ai compris quand même, ce que je voulais savoir c'est l'utilité de author_id, et page_count ..

de plus comment faire pour rediriger les personnes qui ont échouer à l'authentification sur la même page tout en ouvrant un pop up de ce type : "window.open('/Erreur.php','Erreur','height=530,width=300,left=350,top=50') ??

c'est du javascript c'est bien ça?
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 15:04
J'a du remplac
er 


	if(!strcmp($infos["login"],$login)&&! strcmp($infos["password"],$password))

par
if(!strcmp($infos["login"],$login)&&! strcmp($infos["password"],$password)&& !empty($login) && !empty($password))


sinon la connexion était possible sans login et mot de passe ...
1
liho Messages postés 142 Date d'inscription lundi 14 mai 2007 Statut Membre Dernière intervention 1 octobre 2013 24
25 sept. 2008 à 15:21
echo "<script>alert(' .:: CONNEXION OK ::.');</script>";
avec ca il te met un message a chaque fois que la connexion est bonne, il suffit de l'enlever et plus de message...

Après je sait pas si ton code marche ( je suis loin d'être pro moi aussi) donc a tester au complet...
1
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 sept. 2008 à 16:29
non c'est la boucle if qui était mal faite !!

le message -- echo "<script>alert(' .:: CONNEXION OK ::.');</script>"; je l'ai volontairement ecrit pour voir la difference entre un membre connecté ou non ....

bon maintenant que je crée mes session de connexions il faut les propager avec des cookies....
1