Posez votre question Signaler

ESPACE MEMBRE - création en php [Résolu]

-CCM- 921Messages postés 28 mai 2008Date d'inscription 27 janvier 2012Dernière intervention - Dernière réponse le 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
Lire la suite 

ESPACE MEMBRE - création en php »

20 réponses
Réponse
+1
moins plus
C'est quel partie qui t'embête exactement ?
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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...
Ajouter un commentaire
Réponse
+1
moins plus
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)
Ajouter un commentaire
Réponse
+1
moins plus
- 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
Ajouter un commentaire
Réponse
+1
moins plus
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 ....
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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 ?
Ajouter un commentaire
Réponse
+1
moins plus
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)
-CCM-- 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 :)
Ajouter un commentaire
Réponse
+1
moins plus
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?
Ajouter un commentaire
Réponse
+1
moins plus
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 ?
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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");
Ajouter un commentaire
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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?
Ajouter un commentaire
Réponse
+1
moins plus
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 ...
Ajouter un commentaire
Réponse
+1
moins plus
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...
Ajouter un commentaire
Réponse
+1
moins plus
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....
Ajouter un commentaire
Ce document intitulé « ESPACE MEMBRE - création en php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?