Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE POUR CRÉATION D'UN ESPACE MEMBRE


Information sur la source

Catégorie :Class et Objet ( POO ) Niveau : Débutant Date de création : 06/08/2004 Vu / téléchargé: 5 357 / 827

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

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

  • 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;
  • }
  • }
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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de aquewel le 12/09/2004 21:59:39

elle est bien cette source ?????????

c pour kan la mise a jour ???

signaler à un administrateur
Commentaire de yafuka le 13/09/2004 12:11:08

tu veux dire l'ecrire avec php5 !?

signaler à un administrateur
Commentaire de stormgts le 15/11/2004 02:32:20

Une petit mis a jour PHP5 serait pas mal effectivement :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.