IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Espace membre


Sujet :

Langage PHP

  1. #361
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Pour mon problème j'ai trouvé une parade, maintenant pour savoir si c'est propre ou pas je ne sais pas mais ca fonctionne.

    Dans le fichier function.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_SESSION['last_access']=@time();
        $_SESSION['ip']=$ip;
        $_SESSION['login']=$row['login'];
        $_SESSION['mdp']=$row['mdp'];
        $_SESSION['email']=$row['email'];
    	$_SESSION['privilege']=$row['privilege'];
    J'ai rajouté la dernière ligne qui définit dans la session le privilège.

    Puis dans chaque page que je veux protéger ou partie qui doit rester "secrète" je met ce bout de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($_SESSION['privilege'] == "admin")
    J'ai une petite question, dans ma condition si c'est vrai ben je met simplement {} mais est-ce bien de ne rien mettre ?

    Par exemple en début de page je regarde si l'utilisateur est bien connecté et que ses privilèges lui accordent le droit de visionner la page ce qui donne quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if($_SESSION['privilege'] == "admin" AND $_SESSION['last_access']=@time()){
     
    }
    else
    {
    redirection sur une autre page
    }
    Est-ce que laisser la condition vrai vide est conseillé ? car je ne sais pas trop quoi mettre à la place...

    Merci

  2. #362
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Salut mikaweb

    deja je pense que tu devrais changer la valeur de ta variable de privilege par autre chose que "admin" j'y connais rien en recup de session et en utilisation de variable de session, mais je pense que si qlqun voit que la session a une variable "privilege" et qu'il sait injecter une variable de session, "admin" sera le 1er resultat qu'il tentera

    pour ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if($_SESSION['privilege'] == "admin" AND $_SESSION['last_access']=@time()){
     
    }
    else
    {
    redirection sur une autre page
    }
    Heuu si c'est en début de page, tu devras automatiquement avoir le code de ta page apres le if($_SESSION['privilege'] == "admin" AND $_SESSION['last_access']=@time()){

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if($_SESSION['privilege'] == "admin" AND $_SESSION['last_access']=@time()){
     
    }
    else
    {
    redirection sur une autre page
    }
    //ta page HTML
    si tu mets ton code en debut de page, et qu'apres la fermeture du 'else { }' tu places le reste du code de ta page comme le code ci dessus, ta page risque de s'afficher un cours instant.

    Je te conseillerai plutot de faire l'inverse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if($_SESSION['privilege'] != "admin" AND $_SESSION['last_access']=@time()){
     //redirection sur une autre page
    }
    else
    {
    // tout le code HTML de ta page avec le bon privilege
    }
    j'ai pas tenté si ca fonctionnait avec cette syntaxe la mais en gros tu regardes si l'inverse de ce que tu demandes te dit "true" (c'est a dire, si la valeur de la variable de session privilege n'est pas egale a "admin" alors je redirige sur une autre page sinon j'affiche le reste de la page )

  3. #363
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Dans ce cas de construction, le plus simple est encore de faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($condition_pour_redirection)
    {
    header('Location: ...'); //redirection
    die(); //hop, on kill le script
    }

    Comme ça pas besoin de s'***** avec un bloc else qui contient toute ta page

  4. #364
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Le souci avec mon système est que je dois faire plusieurs fois la condition dans la page que ce soit pour mon menu qui change en fonction des droits

    Puis par exemple sur ma page de news ou je fais d'abord une condition pour savoir si on a l'accès à la page et ensuite une nouvelle condition pour voir certains paramètres.

    Concernant le vol de session, y a quand même peu de chance qu'on vienne m'embêter

  5. #365
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bonjour à tous et félicitations à Sub0 et autres contributeurs pour ce script...

    Je suis newbie de chez newbie... Je commence tout juste à m'y retrouver en php mysql (j'ai dit retrouver et pas coder)...

    Je suis à la recherche d'un espace membre aussi sécurisé, propre et complet que celui-ci...
    D'ailleurs, comme le début de ce topic date d'il y a plus de 2 ans, notre ami google le fait ressortir dans les premières positions...

    J'ai lu les 25 pages de cette discussion et je ne m'y retrouves pas quant à l'intégration à mon site...

    Galère...

    Quelqu'un pourrait il m'expliquer concrètement comment cela se passe...

    J'ai essayé différentes choses, mais cela galère vraiment...

    Celle que j'utilise actuellement est le "require_once"... Et j'ajoute en haut de chaque page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include_once('include/session.php');?>
    Est ce que c'est correct?

    Si quelqu'un avait la gentillesse de me donner quelques explications, avec quelques bouts de codes d'exemples pour que je m'y retrouve...

    Et autre question : où s'enregistrent les sessions? Je n'ai ni de fichier sessions sur le serveur, ni de cookies...

    Et enfin, une autre question...

    Je suis sur un site de jeu (pas d'instant gagnant). Et je souhaite que mes visiteurs ne soient pas obligés de s'inscrire ou de se logguer avant de jouer.
    En gros, j'ai des visiteurs (dont j'aimerais avoir une trace dans les sessions, notamment pour l'IP) qui jouent.
    Lorsque l'un gagne, je lui propose alors de se logguer ou de s'inscrire, mais pas avant d'avoir répondu à la question.
    Comment je gère ceci ?

    Et sans doute que cela ferait plaisir à d'autres débutants comme moi...

    C'est à votre contact et grâce à votre travail que l'on apprend...

    Merci infiniment...

  6. #366
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 34
    Points
    34
    Par défaut
    Bien, j'ai réussi l'intégration...

    Ce script est vraiment génial et très bien réalisé...

    Ma seule question : où sont enregistrées les sessions?

    Je croyais qu'une session pouvait être soit sur le serveur, soit en cookie... Je ne retrouve ni l'un, ni l'autre...

    Merci de m'expliquer comment cela se passe...

    Comment faire également pour que l'admin du site puisse déconnecter un membre ?

    Merci

  7. #367
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    salut tout le monde ce script est vraiment fantastique c'est celui que je cherchait depuis longtemps cependant j'ai des problèmes cocernant l'intégration est ce que vous pouvez m'aider svp j'ai utiliseé la fonction include de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?PHP
    include("membres/index.php");
    ?>
    mais le problème est que mème si le script apparait dans ma page d'accueil il considère les autres fichers comme inscript et connect dans la racine alors qu'ils sont dans le dossier membres j'ai chreché une solution pendant des jours mais c'est en vain doncsi vous pouvez m'aider un peu je vous serai reconnaissant pour la vie

  8. #368
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Bonjour.

    Je reviens aux news.
    la v3 est elle toujours prévue ou alors ce n'est plus la peine de l'attendre?

    Merci bien.
    Cordialement

  9. #369
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    @Valencio : Salut! Désolé de te répondre tardivement, mais je n'ai pas eu (ou vu) de notification... Si ton problème est toujours d'actualité, je pense que le problème vient du fait que tu as nommé ta page "index.php". Essaye avec un autre nom.

    @masseur
    : Salut! J'étais dernièrement plutôt concentré sur un projet similaire (DELPHP) qui possède un espace membre justement. Delphp2 est une version améliorée de ce programme et son espace membre est vraiment au point. Je vais donc utiliser ces scripts pour réaliser la V3. Il ne manque plus qu'à ajouter les formulaires html et également réfléchir à l'intégration pour vous simplifier les choses. Je pense par exemple à une page d'installation et l'utilisation des IFrames... A ce propos, je suis toujours intérressé par d'autres idées. Il faudra aussi que je pense à la migration de la v2 vers la v3...

  10. #370
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    On saura être patient, de toute manière la version actuelle est vraiment bien

  11. #371
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Je reviens un peu aux nouvelles.
    J'ai relu encore une fois tout le thread et je me suis rendu compte que j'avais zappé le système à warmania.

    http://guillaume-affringue.developpez.com/aedituus/

    Apporte-il un plus comparé à ESMPM ?
    Je dis cela car esmpm date déjà d'il y a 2-3 ans enfin me semble que la version 2 date de 2004.

    J'ai un peu regardé du côté du système de ton programme delphi2.
    Est-ce que je peux l'utiliser sans risque en production ?

    Merci de tes réponses Sub0

  12. #372
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    DELPHP2 existe sous forme de DLL, c'est une démo même si il reste possible de l'utiliser en production. Je pense qu'il serait préférable de distribuer les sources pour une réelle utilisation. Sinon, oui, DELPHP2 est sûr. C'est comparable à l'utilisation d'un navigateur web. Couplé avec SSL, c'est du sûr de chez sûr!

    Concernant Espmem3, j'attaque cette semaine.

  13. #373
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    J'ai relu encore une fois tout le thread et je me suis rendu compte que j'avais zappé le système à warmania.

    http://guillaume-affringue.developpez.com/aedituus/

    Apporte-il un plus comparé à ESMPM ?
    C'est Wamania , pas de "r"

    Il est juste différent. Par exemple, il ne fonctionne que avec PHP5, impossible à rendre compatible pour PHP4. Surement plus dure à appréhender, car plus orienté objet. La "doc" est visible à http://guillaume-affringue.developpez.com
    A toi de voir ce qui te convient le mieux.

  14. #374
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Bonjour à tous,

    la V3 est-elle bientôt prête ?
    Je suis impatient de voir ça .... déjà aux dires de la v2 qui semble très bien, la future monture risque de tout déchirer !!!

  15. #375
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Tu as un cahier des charges concernant la V3 avec toutes les options disponibles ?
    Comme un système de rang ? Histoire de voir ce que la bête sera capable de faire

    En tout cas merci du taff et si y a besoin d'un coup de main, je ne pense pas mais qui sait, tu peux toujours venir demander de l'aide

    Moi en tout cas j'attends avec impatience ton nouveau système histoire que je puisse passer à la version suivante de mon site.

  16. #376
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    J'ai une question un peu théorique à vous poser.
    Je cherche le meilleur moyen de faire ce système de rang dont je parle depuis un petit moment.
    Actuellement cela fonctionne avec un rang dans la base de donnée mais je trouve cela assez casse couille à la longue de rajouter sur chaque page cette condition.
    Je me suis amusé à aller voir le code de punbb qui est très légé.

    Voici comment sa fonctionne, du moins ainsi que je l'ai compris

    define('PUN_ADMIN', 1);
    define('PUN_MOD', 2);
    define('PUN_GUEST', 3);
    define('PUN_MEMBER', 4);

    Puis ensuite dans une page admin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($pun_user['g_id'] > PUN_ADMIN)
    message($lang_common['No permission']);
    Ce qui donne si le groupe de l'user dans la BDD est supérieur à PUN_ADMIN donc 1 alors il affiche la fonction message qui est un arrêt du script avec un petit message d'erreur

    Puis la dernière possibilité que j'ai vu c'est l'opérateur de bit bien que je n'ai pas vraiment été plus loin pour voir de quoi sa parlait vraiment.


    Que me conseillerez vous pour mon système qui je le rappelle est entièrement basé, et très légérement à ma convenance sur ESMPM


    Merci.


    edit: mettre un petit système de redirection de ou on vient serait sympa non ?

  17. #377
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut à tous!

    Juste pour vous annoncer que je suis en vacances quelques jours et que je compte utiliser ce temps libre pour terminer la V3. J'ai déjà attaqué...

  18. #378
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    Salut à tous!

    Juste pour vous annoncer que je suis en vacances quelques jours et que je compte utiliser ce temps libre pour terminer la V3. J'ai déjà attaqué...
    C'est une très bonne nouvelle.
    Est-ce que tu pourrais nous dire ce qui évoluerait de la V2 à cette dernière ?
    J'ai actuellement un script qui me parait bien sécurisé et stable, basé en grande partie sur ce que tu avais fait avec cette belle V2. J'aimerais savoir si sa vaut réellement la peine que je mette à jour par la suite. De toute facon j'attendrais qu'elle arrive et je testerais, d'ailleurs si tu as besoin de testeur

  19. #379
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Pour résumer rapidement les évolutions (je n'ai pas toute la liste en tête):
    • Code bien plus propre et encore plus structuré
    • Séparation des formulaires html et du code de traitement PHP
    • Sécurité augmentée (exemple: session en bdd)
    • Intégration au site simplifiée grâce à une iframe et aux styles css
    • Fonctionnement général et compatibilité garantis sans Javascript
    • Ajoût d'un champs suplémentaire de niveau pour le membre (admin, modo, user, etc)

    Si j'ai encore du temps :
    • Avec Javascript, possibilité d'obtenir une superbe interface dynamique
    • Et surtout, une page d'installation / d'administration / de configuration

    Si vous voyez des trucs que j'aurais oublié, ou bien que vous avez des idées intérressantes, je suis preneur.

  20. #380
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 77
    Points : 92
    Points
    92
    Par défaut
    Je me demandais, si c'était pas un peu lourd d'utiliser les sessions en BDD ?

    Les Iframes c'est relativement déconseillé, c'est moche et c'est pas très aux standard

    Y aura-t-il aussi un système de Token, j'avais testé le système de Wamania qui en utilisait un ?

Discussions similaires

  1. Réponses: 197
    Dernier message: 27/04/2021, 01h11
  2. [Sécurité] Réalisation d'un espace membre
    Par Goundy dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 20h01
  3. Redirection personnalisée espace membre
    Par vinche999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 28/01/2006, 23h39
  4. [Sécurité] espace membre
    Par Emcy dans le forum Langage
    Réponses: 5
    Dernier message: 24/01/2006, 20h13
  5. [Sécurité] Probleme d'espace membre
    Par warmup dans le forum Langage
    Réponses: 4
    Dernier message: 01/12/2005, 02h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo