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
-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
A voir également:
- ESPACE MEMBRE - création en php
- Espace insécable word - Guide
- Creation compte gmail - Guide
- Comment liberer de l'espace sur gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
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
25 sept. 2008 à 10:32
C'est quel partie qui t'embête exactement ?
-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
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
en faite c'est flou je ne vois pas encore comment réaliser tout ça
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
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...
Si tu as des questions plus spécifiques...
-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
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)
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)
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
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
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
-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
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 ....
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 ....
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
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
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
-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
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 ?
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 ?
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
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)
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-
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
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 :)
l'histoire de level m'interesse fort bien :)
-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
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?
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?
-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
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 ?
Sinon le session_start(); (en bas de la page 2 ) ne doit pas apparaitre sur mon formulaire ?
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
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
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
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
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
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
-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
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");
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");
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
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.
"//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.
-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
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?
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?
-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
25 sept. 2008 à 15:04
J'a du remplacer
par
sinon la connexion était possible sans login et mot de passe ...
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 ...
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
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...
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...
-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
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....
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....