|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Bonjour à tout ceux qui verront ce message
Aujourd'hui, pour une fois, je ne poste pas de problème. Mais une idée dont j'aimerais des avis et de l'aide (si il y a) pour créer ma page de profil pour un forum. En effet, pour ma page de profil, j'aimerais créer un code spécial pour faire en sorte que :
J'avais pensé à ce code (dans les grandes lignes) : Code :
Qu'en pensez vous ?? |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 249 ![]() |
Salut,
moi j'aurai plutot vu ca comme ca : Code :
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
||
|
|
00
|
|
|
#3 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Citation:
Je m'intéresse plutôt sur le fait de la connexion ^^ si vous aviez des idées pour savoir si un membre est juste endormis sur le site ou si il est déconnecté =) |
|||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Cyrille Keller Inscription : juillet 2010 Messages : 66 ![]() |
en fait les deux choses n'ont rien à voir ensemble directement
Si tu ordonnes tes if ils vont s'éxécuter dans l'ordre donc if (pas connecté) { redirection} if (profil=connecté) {affichage des liens} ce qui fait que la redirection empêchera l'éxécution du second if Ensuite pour la partie "réveillé" si tu veux simplement protéger tes données de qqun qui est parti en laissant une page ouverte fais un timout avec un compteur. |
|
|
00
|
|
|
#5 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Citation:
Moi je pensais plus à mon if, else, else qui ne peut se tromper car si le membre est connecté il pourra voir la page !! Mais je peux intelligemment refaire le code : Code :
|
|||
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Florian silesWebmaster Inscription : juin 2011 Messages : 59 ![]() |
Salut ade!
Je te propose ma vision des choses. En supposant que tu as un code lors de la soumission du formulaire de login, qui vérifie dans la base de donnée le pseudo et le mot de passe du membre. Si tout est bon, faire un $_SESSION['pseudo'] = pseudodumembre. Du coup, sur ta page profil.php: Code php :
Du coup ensuite, tu affiches ta page de profil, et tu te sert de $status pour savoir ce qu'il faut afficher ou non (avec des if) (J'espère que je suis pas à coté de la plaque =P) |
||
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Belle vision des choses l'histoire du statue
Code :
Mais petite question, si deux personnes ont le même pseudo !? (car elles auront le droit) Devrais-je faire par rapport à l'IP ou bien autre chose comme l'ID !? |
||
|
|
00
|
|
|
#8 | |||
|
Membre expérimenté
![]() |
Citation:
Ensuite pour l'affichage des données en fonction du statut, je pense que tu peut faire une sorte de gestion de droits en listant toutes les fonctionnalités de la page, tu les stocks en base avec le niveau de droit correspondant (en l'occurence le statut), et pour chaque fonctionnalité, tu vérifie via une petite fonction si le niveau de droit de l'utilisateur correspond a celui de la fonctionnalité, ca reviens au même que de faire un if ($status == 3) a chaque fois, mais la c'est évolutif
|
|||
|
00
|
|
|
#9 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Citation:
Citation:
Évolutif !!? C'est-à-dire ?? |
||
|
|
00
|
|
|
#10 | ||||||
|
Membre expérimenté
![]() |
C'est évolutif dans le sens ou si tu veux changer une des règles (du style les admin peuvent avoir des fonctionnalités supplémentaires, ou si d'un coup tu décide que les utilisateurs non connectés peuvent voir quelques informations au lieu d'être redirigé), tu aura juste a modifier les droits dans la base.
Je viens de fouiller dans ma banque de code et malheureusement je n'ai rien sur la gestion des droits, par grave on peut tenter de faire ca dans les grandes lignes : Base de données : - Une table status qui contiendra les divers statuts (non connecté, connecté, connecté et propriétaire du profil, admin, etc...) avec un champs statusId (clé primaire, auto incrément) et nomStatus. - Une table fonctionnalites qui va lister les fonctionnalités, avec un champs fonctId et un champs fonctName. - Une table status_droits qui va faire le lien entre les status et les fonctionnalités, un champs statusId_fk, un champs fonctId_fk et un champs droit en booleen. Récupération du type de droit (ou statut) La tu peut reprendre le code de flozza avec quelques petites modifs : Code :
Pour la page profil, tu peut ensuite gérer les choses comme ca (je prend l'exemple de l'affichage de l'avatar, avec un lien "modifier" pour l'utilisateur correspondant au profil) : Code :
Code :
Voila, après tu peut te faire un module de gestion des Droits dans l'admin en ajoutant des fonctions dans la classe Droits afin de modifier et gérer les droits facilement, et si demain tu décide que l'admin peut modifier l'avatar de l'utilisateur, ba tu change juste la valeur du champs droit de la table status_droits pour le status de l'admin et pour la fonctionnalité "editAvatar" PS : J'ai tapé ca a l'arrache donc y'a surement moyen de faire plus optimisé, et rien ne t'oblige de le faire exactement comme ca c'était juste pour te montrer le principe PS2 : Ce code est plus adapté pour une gestion des droits avec des profils d'utilisateurs, la on utilise des status disponibles uniquement sur la page profil donc c'est pas super utile si tu ne l'utilise que sur cette page, mais bon si tu développe un forum je pense que t'aura besoin d'une gestion des droits à d'autres endroits, dans ce cas il faudra placer le statusId dans la table des membres. |
||||||
|
00
|
|
|
#11 | ||||||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Déjà un grand merci pour ta réponse
Très explicatif ^^ Mais tu m'as maintenant créé un doute Ensuite Pour mes pages (généralisons un peu). J'ai mon formulaire et je créé plusieurs champs (id, Nom, Prénom, Sexe, Adresse, Ddn, Identifiant, Mdp, mail, numtel) et ma personne est tout de suite redirigé vers la page de connexion !! Dis que la personne se connecte (là c'est l'explication, fais attention Code :
Si oui, je continue... Maintenant la personne possède deux cookies permettant de savoir qu'il est connecté ^^ (en quelque sorte, plutôt inscrit) Dans mes pages, je vais donc inscrire un petit code de vérification : Code :
Je reprends : Code :
Maintenant je veux juste savoir si mon code est bon, si il marche et enfin si il peut y avoir des choses à améliorer TOUT POINT POSITIF OU NÉGATIF SERA PRIS EN COMPTE |
||||||
|
|
00
|
|
|
#12 | ||||
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : février 2008 Messages : 430 ![]() |
Oh là là c'est dangereux des cookies avec les identifiants et mot de passe de l'utilisateur en clair.
Je te conseille d'utiliser les variables de session comme ça le client ne stocke que son ID de session en local et les variables sont elles stockées sur le serveur. Enfin, ne stocke que l'ID de l'utilisateur dans ces variables, cela ne sert à rien de stocker son identifiant et encore moins son mot de passe. A la place de ça : Code :
Code :
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre. Linus Torvalds |
||||
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Merci pour ta réponse Marc mais si une personne à juste quitter le site (inscrite mais elle a quitté) elle fait alors une session destroy !! Et qu'elle veuille voir une des pages de mon site. Comment je vais savoir qu'elle est encore 'connecté' mais elle qu'elle fait une session destroy !?
Je crois avoir lu quelque part que cela n'était pas très bien de laisser une session ouverte alors que l'user n'y est est plus... Dites moi si je me trompe ? |
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : février 2008 Messages : 430 ![]() |
Effetivement tu peux utiliser les cookies dans ce cas ùais plutot avec un jeton qu'avec directement les données sensibles dedans.
L'idée c'est que le cookie doit contenir un jeton (chaîne aléatoire) générée par l'appli et utilisable une seule fois. Quand le user se connecte à l'appli, tu génères un jeton que tu stockes dans le cookie et en base dans une table qui ne sert qu'à ça (avec le lien jeton - user en base). Quand le user revient sur le site après s'être délogué tu checks le jeton (conservé car dans un cookie) et vérifie dans la base qu'il est valide, tu loggues directement le user et tu regénères un jeton pour ce user.
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre. Linus Torvalds |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Si, comme sur ce forum, tu as prévu un bouton/lien "déconnexion" et quelle clic dessus, tu feras en sorte que la session sera détruite. Après cela elle deviendra un internaute lambda (dès déconnexion on peu la rediriger vers la page d'accueil par exemple). Théoriquement, on devrait pouvoir visiter le site (la partie "publique") sans avoir besoin de session. Si une autre personne utilise la même machine (cas courant dans une entreprise), il n'y aura plus de problème, car il faudra à nouveau s'identifier. Grosso modo, il n'y a pas lieu de tenter de savoir qu'on a affaire à la même personne (même poste client/navigateur/même IP), et tenter de la ré-identifier automatiquement, c'est là où on favoriserait une usurpation d'identité. Il est préférable qu'après déconnexion, que la personne se ré-identifie elle même. Citation:
Si une autre personne utilise la même machine, elle pourra utiliser le site identifiée avec le même profil, les mêmes droits que l'autre personne. Mettre un système de déconnexion devient ici réellement utile (voir indispensable). Mais si la personne oubli de le faire, alors c'est là où on ne peu pas faire grand chose. C'est un peu le même problème que d'oublier son porte monnaie sur un comptoir, on ne peu guère tout gérer. Ceci dit pas vraiment, car une session à une durée de vie, par défaut c'est 24 minutes (1440 secondes). Donc s'il y a aucune activité, la session sera automatiquement détruite au-delà de ce délai. D'où l'utilité de définir une durée ni trop courte, ni trop longue. Une sorte de compromis entre laisser suffisamment la personne de lire un contenu (donc physiquement inactif coté navigateur, mais actif pour la personne qui lis), et pas trop long dans le cas où une personne qui quitte le site sans cliquer sur "déconnexion" et donc ne pas favoriser une usurpation. A savoir aussi que, si une personne ferme un onglet, mais pas la fenêtre du navigateur, cela sans cliquer sur déconnexion, la session restera active car le cookie coté navigateur n'est pas détruit. En général les cookies sont détruits lorsqu'on ferme le navigateur. (ça dépend du navigateur et comment il est configuré cependant).
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
10
|
|
|
#16 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Alors déjà grand merci pour ces magnifiques informations RunCodePhp
Pour éditer ma page de profil (générale), j'ai réutilisé l'ingénieuse idée de Marc ^^ : donc j'ai créer un code aléatoire (changeante à chaque fois, bien sur) puis je le stocke dans un bon cookie Alors voici le problème auquel je suis confronté en ce moment et dont je ne comprends plus grand chose Quand l'user reviens sur le site, il a le cookie et peu donc rentré. Seulement il va bien falloir connaître son ID à cette personne, sinon si elle veut voir un profil je ne vais pas savoir si c'est un user quelconque ou bien l'user du profil... Donc je me suis "permis" d'y installer l'email ainsi que son ID... Alors voilà le problème Je n'arrive pas à enregistrer l'ID à partir d'une autre table. Code : Code :
Donc en gros c'est la cata Citation:
|
|||
|
|
00
|
|
|
#17 | |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : février 2008 Messages : 430 ![]() |
Citation:
Le primary par contre ne devrait gueuler que si tu essaies d'ajouter une ligne avec une valeur qui existe déjà sur ce champ. Tu dois pouvoir le laisser mais dans ton code tu dois donc vérifier qu'aucune ligne avec ce champ existe avant d'insérer une ligne.
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre. Linus Torvalds |
|
|
|
00
|
|
|
#18 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Merci marc pour tes réponses
Sur un autre forum, j'ai réussi à régler ce léger détail ^^ je continue pour faire en sorte que ma page de profil respecte mes contrainte imposé |
|
|
00
|
|
|
#19 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2011 Messages : 54 ![]() |
Alors nouveau problème... oui je sais encore
Je vais sur ma page de connection, je me connecte (création du code aléatoire sur un cookie et enregistrer dans une table). Redirection vers ma page d'accueil, lien vers lequel je veux accéder à mon profil, je clique... Alors voilà, pas de page de profil... Il ne veut pas pas récupérer mon ID !! le code si vous voulez voir : Code :
|
||
|
|
00
|
|
|
#20 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : février 2008 Messages : 430 ![]() |
Ajoute des logs ou des traces pour savoir où ça coince...
Dans ta base tu vois ton hash? Il est bien lié au bon ID?
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre. Linus Torvalds |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com