Accés supprimé après un certain nombre de connexion

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Accés supprimé après un certain nombre de connexion

    Bonjour a tous,
    Après avoir mis en place une limitation des accés grâce à des dates de validitées, j'aimerais toujours dans le même principe, limiter un accés membre à un certain nombre de connexion.
    Par exemple, après qu'un membre se soit connecté 50 fois, son compte serait désactivé.
    Existe-t-il un composant qui permettrait de réaliser cela ? Ou juste un petite astuce du type hack ?
    Merci d'avance pour vos réponses.
    Dernière édition par networkontrol à 29/12/2005, 14h30
    http://www.networkontrol.net
    Base connaissances pour administrateurs réseaux libres

  • #2
    Fnalement je me suis débrouillé tout seul...
    Pour ceux que cela intéresserait, j'ai modifié includes/mambo.php et rajouté un champ dans la table en_users.
    http://www.networkontrol.net
    Base connaissances pour administrateurs réseaux libres

    Commentaire


    • #3
      Salut,

      Juste par curiosité, tu peux détailler un peu plus la manip s'il te plaît
      Pas de demande de support en MP ou par mail, le forum est là pour ça!
      http://www.joomla.fr : news, téléchargements, tutoriels, FAQ, traduction, documentation
      http://www.lapatagonie.com : juste pour vous dépayser un peu...

      Commentaire


      • #4
        Salut,

        Aucun rapport, mais je tenais à te féliciter pour ton site

        Je le conseille donc à tous nos aspirants pingouins réseau !!!

        @++
        Hyperion
        Pas de demande de support en MP ou par mail, le forum est là pour ça!
        http://network.wantoo.com : Wantoo Network - Infogérance Serveurs Dédiés - Sécurité Joomla!

        Commentaire


        • #5
          Merci hyperion pour mon site. Comme vous avez pu le voir, mon site perso ne fonctionne pas grace à Mambo mais à guppy....
          Les questions que je pose sur mambo c'est pour le site que je gère professionnellement.
          Pour ce qui est de la manip pour compter le nombre de connexion des membres :
          - dans un premier temps dans la table *_users, j'ai rajouté un champ nb_visit (int10).
          - ensuite, tout se joue dans le fichier includes/mambo.php. Dans celui-ci, il faut chercher le fonction login. Une fois celle-ci trouvé, il faut la modifier et la compléter de façon à récupérer le nb_visit à chaque connexion du user, et l'incrémenter de 1. Pour des raisons de sécurités, j'ai du rajouter un blocage du user après un certain nombre de connexion. Dans ce cas ci, une popup apparait sur l'écran du user indiquant que c'est sa dernière connexion, ensuite son compte est bloqué ( dans la table *_users, block = 1 ).
          Pour ceux que cela intéressent, voici ma focntion login modifié :

          [code]
          function login( $username=null,$passwd=null ) {
          global $acl;

          $usercookie = mosGetParam( $_COOKIE, 'usercookie', '' );
          $sessioncookie = mosGetParam( $_COOKIE, 'sessioncookie', '' );
          if (!$username || !$passwd) {
          $username = trim( mosGetParam( $_POST, 'username', '' ) );
          $passwd = trim( mosGetParam( $_POST, 'passwd', '' ) );
          $passwd = md5( $passwd );
          $bypost = 1;
          }
          $remember = trim( mosGetParam( $_POST, 'remember', '' ) );

          if (!$username || !$passwd) {
          echo "<script> alert(\""._LOGIN_INCOMPLETE."\"); window.history.go(-1); </script>\n";
          exit();
          } else {
          $this->_db->setQuery( "SELECT id, gid, block, usertype, nb_visit"
          . "\nFROM #__users"
          . "\nWHERE username='$username' AND password='$passwd'"
          );
          $row = null;
          if ($this->_db->loadObject( $row )) {
          if ($row->block == 1) {
          echo "<script>alert(\""._LOGIN_BLOCKED."\"); window.history.go(-1); </script>\n";
          exit();
          }

          // fudge the group stuff
          $grp = $acl->getAroGroup( $row->id );
          $row->gid = 1;

          if ($acl->is_group_child_of( $grp->name, 'Registered', 'ARO' ) ||
          $acl->is_group_child_of( $grp->name, 'Public Backend', 'ARO' )) {
          // fudge Authors, Editors, Publishers and Super Administrators into the Special Group
          $row->gid = 2;
          }
          $row->usertype = $grp->name;

          $session =& $this->_session;
          $session->guest = 0;
          $session->username = $username;
          $session->userid = intval( $row->id );
          $session->usertype = $row->usertype;
          $session->gid = intval( $row->gid );

          //Modif networkontrol : gestion nbr de connexion
          $noliv = '1';
          $currentD = $row->nb_visit;
          $currentDa = $currentD + $noliv;
          $query = "UPDATE #__users SET nb_visit='$currentDa' where id='$session->userid'";
          $this->_db->setQuery($query);
          if (!$this->_db->query()) {
          die($this->_db->stderr(true));
          }

          if ($currentDa > '400'){
          $query = "UPDATE #__users SET block='1' where id='$session->userid'";
          $this->_db->setQuery($query);
          if (!$this->_db->query()) {
          die($this->_db->stderr(true));
          }
          echo "<script>alert(\""._LOGIN_BIGNBVISIT."\"); window.history.go(-1); </script>\n";
          exit();
          }
          //Fin modif networkontrol

          $currentDate = date("Y-m-d\TH:i:s");
          $query = "UPDATE #__users SET lastvisitDate='$currentDate' where id='$session->userid'";
          $this->_db->setQuery($query);
          if (!$this->_db->query()) {
          die($this->_db->stderr(true));
          }

          if ($remember=="yes") {
          $lifetime = time() + 365*24*60*60;
          setcookie( "usercookie[username]", $username, $lifetime, "/" );
          setcookie( "usercookie[password]", $passwd, $lifetime, "/" );
          }
          //mosCache::cleanCache('com_content');
          mosCache::cleanCache();
          } else {
          if (isset($bypost)) {
          echo "<script>alert(\""._LOGIN_INCORRECT."\"); window.history.go(-1); </script>\n";
          } else {
          $this->logout();
          mosRedirect("index.php");
          }
          exit();
          }
          }
          }
          [code]

          Si vous voulez encore des détails contactez moi !
          En ce moment, je suis en train de travailler sur la création de graphiques en fonctions de ces donnés user ; de plus, il faut maintenant que je compte le nombre de consultation de la boutique phpshop par les utilisateurs...tout un roman...
          http://www.networkontrol.net
          Base connaissances pour administrateurs réseaux libres

          Commentaire

          Annonce

          Réduire
          1 sur 2 < >

          C'est [Réglé] et on n'en parle plus ?

          A quoi ça sert ?
          La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

          Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

          Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
          Comment ajouter la mention [Réglé] à votre discussion ?
          1 - Aller sur votre discussion et éditer votre premier message :


          2 - Cliquer sur la liste déroulante Préfixe.

          3 - Choisir le préfixe [Réglé].


          4 - Et voilà… votre discussion est désormais identifiée comme réglée.

          2 sur 2 < >

          Assistance au forum - Outil de publication d'infos de votre site

          Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

          Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

          Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

          UTILISER À VOS PROPRES RISQUES :
          L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

          Problèmes connus :
          FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

          Installation :

          1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

          Archive zip : https://github.com/AFUJ/FPA/zipball/master

          2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

          3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

          4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

          5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

          6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
          et remplacer www. votresite .com par votre nom de domaine


          Exemples:
          Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
          Télécharger le script fpa-fr.php dans: /public_html/
          Pour executer le script: http://www..com/fpa-fr.php

          Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
          Télécharger le script fpa-fr.php dans: /public_html/cms/
          Pour executer le script: http://www..com/cms/fpa-fr.php

          En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

          Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
          Voir plus
          Voir moins
          Travaille ...
          X