Classe pour création d'un espace membre

3/5 (3 avis)

Vue 13 968 fois - Téléchargée 1 894 fois

Description

Dans cet article je vais réaliser une simple classe PHP de gestion d'espace membre. Ce script comporte le minimum de sécurité, mais n'est pas invioloable. Néanmoins c'est une sécurité suffisante pour un site web du moment ou vous n'êtes pas entrain de construire une page web pour une banque. Remarque si c'était le cas, vous ne seriez pas entrain de lire cet article.

Dans la base de données, les mots de passe des membres seront cryptées. Cela permet de sécuriser les données de vos utilisateurs. Ainsi si un jour une personne de mauvaise foi arrive à pirater votre base de données, vos utilisateurs qui utilisent le meme mot de passe ne seront pas en danger.

Moi j'ai l'habitude d'utiliser la bibliothèque PEAR pour me connecter à ma base de données. Mais vu que tout le monde ne dispose pas de cette bibliothèque (surtout ceux qui ont un hebergement mutualisé), j'utiliserai les fonctions de php.

un exemple de la table des membres
CREATE TABLE `membres` (
`id` INT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`pseudo` VARCHAR( 15 ) NOT NULL ,
`mdpasse` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 100 ) NOT NULL ,
INDEX ( `id` )
);

Source / Exemple :


class cmembres 
{ 
   //   objet de connexion a la base de donnees 
   var $db; 
    
   // 
   //   Constructeur de la classe 
   // 
   function cmembres($sqlConn)   { 
      $this->db = $sqlConn; 
   } 
    
   // 
   //   fonction permettant de verifier le login et le mot de passe 
   // 
   function verifLogin($nick, $pass)   { 
      //   on s'assure que le nick ne contient pas de balises html et de caracteres qui peuvent 
      //    etre utilisés requête de base de données 
      $nick   = strip_tags(trim($nick)); 
       
      //   la requete sql 
      $sql    = "select mdpasse from membres where pseudo='$nick'"; 
      //   execution de la requete 
      $res   = mysql_query($sql,$this->db) or die( mysql_error() ); 
       
      //   si pas de resultat on retourne false car ce utilisateur n'existe pas 
      if ( !mysql_num_rows($res) )   {   return false;   } 
       
      //   sinon on continu en verifiant le mot de passe 
      $temp   = mysql_fetch_array($res); 
      //   le mot de passe crypté dans la base de donnees 
      $password = $temp['mdpasse']; 
      //   md5 du mot de passe soumis 
      $pass   = md5( $pass ); 
       
      //   strcmp compare les deux mots de passe et retourne 0 en cas d'égalité 
      if ( !strcmp($pass,$password) )   { 
         return true; 
      } 
       
      //   si on arrive ici c'est que le mot de passe  etait invalide 
      return false; 
       
   } 
    
    
    
   //    
   //   fonction permettant de  creer une session 
   // 
   function creerSession($nick)   { 
      //   necessaire lorsqu'on desire utiliser les sessions 
      session_start(); 
       
      //   Enregistrement du nom d'utilisateur comme variable de session 
      $_SESSION['user_name']       = $nick; 
       
      //   Enregistrement de l'heure du dernier acces 
      //   permet de supprimer une session au bout de x minutes d'inactivité sur le site 
      $_SESSION['last_access']   = time(); 
       
      //   une securite de plus, on associe l'adresse ip à la variable de session 
      $_SESSION['user_ip']      = $_SERVER['REMOTE_ADDR']; 
       
   } 
    
    
    
   // 
   //   fonction permettant de supprimer une session 
   // 
   function finSession()   { 
      //   supression de toutes les variables de session 
      $_SESSION   = array(); 
      //   destruction de la session 
      session_destroy(); 
   } 
    
    
   // 
   //   fonction permettant de verifier si l'utilisateur est identifié 
   // 
   function verifAcces()   { 
       
      // 
      //   Si utilisateur pas du tout identifié, donc aucune variable n'existe 
      // 
      if(!isset($_SESSION['last_access']) || !isset($_SESSION['user_ip']) || !isset($_SESSION['user_name'])) 
      { 
           $_SESSION      =   array(); 
         return false; 
      } 
       
      // 
      //   Si non actif depuis 15 minutes 
      // 
      if( (time() - $_SESSION['last_access']) > 900) 
      { 
         $_SESSION      =   array(); 
         return false; 
      } 
       
      // 
      //   Si adresse IP différente 
      // 
      if($_SERVER['REMOTE_ADDR']   !=   $_SESSION['user_ip']) 
      { 
         $_SESSION      =   array(); 
         return false; 
      } 
       
      // 
      //   Sinon tout va bien 
      // 
      $_SESSION['last_access']   =   time();  
      return true; 
   } 

}

Conclusion :


Et voila !!

ci joint un exemple sinple d'utilisation de cette classe.

http://www.progdebutant.com

Codes Sources

A voir également

Ajouter un commentaire Commentaires
stormgts Messages postés 2 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 15 novembre 2004
15 nov. 2004 à 02:32
Une petit mis a jour PHP5 serait pas mal effectivement :)
yafuka Messages postés 236 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 18 juillet 2006 1
13 sept. 2004 à 12:11
tu veux dire l'ecrire avec php5 !?
aquewel Messages postés 143 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 juin 2010
12 sept. 2004 à 21:59
elle est bien cette source ?????????

c pour kan la mise a jour ???

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.