begin process at 2012 05 27 21:39:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > GESTION D'ESPACE ADMINISTRATION

GESTION D'ESPACE ADMINISTRATION


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :motdepasse, login, administration, comptes, securisé Niveau :Débutant Date de création :14/10/2006 Date de mise à jour :15/10/2006 21:24:04 Vu / téléchargé :13 520 / 1 675

Auteur : wolfcyber95

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Voici une classe permettant de gerer totalement votre espace administration.

Source

  • <?
  • class auth
  • {
  • var $user;
  • var $passwd;
  • var $page;
  • var $name_session;
  • var $redir_time;
  • function auth() // Constructeur
  • {
  • $this->user = $_REQUEST["user"]; // Recupere le nom d'utilisateur courant
  • $this->passwd = $_REQUEST["passwd"]; // Recupere le mot de passe courant
  • $this->page = $_SERVER["PHP_SELF"]; // Recupere le nom de la page
  • $this->name_session = "administration"; // Nom de la session
  • $this->redir_time = 1500; // Temps de la redirection en ms
  • session_start(); // Creer la session
  • if (!$this->is_admin()) // Verifie si l'utilisateur est deja logger
  • {
  • if ($_REQUEST["auth"] <> 1) // Verifie si le formulaire doit etre validé
  • {
  • // Formulaire
  • echo "<form action='$this->page?auth=1' method=post>
  • <b>Nom d'utilisateur : <input type=text maxlength=30 name=user>
  • <p>Mot de passe : <input type=password maxlength=12 name=passwd>
  • <p><input type=submit value=Valider></form>";
  • die(); // Arrete le chargement de la page
  • }
  • else // Validation du formulaire
  • {
  • $this->valid_auth();
  • }
  • }
  • }
  • function valid_auth()
  • {
  • if($this->user != "" and $this->passwd != "") // Verifie que les champs ne sont pas vides
  • {
  • $this->passwd = md5($this->passwd); // Crypte le mot de passe
  • $result = mysql_query("SELECT passwd FROM comptes WHERE user='$this->user'"); // Selectionne le mot de passe suivant le login
  • $row = mysql_fetch_array($result);
  • $vpasswd = $row["passwd"];
  • if($vpasswd == $this->passwd) // Verifie si le mot de passe est correct
  • {
  • $admin = base64_encode("$this->user:$this->passwd"); // Encode les informations
  • $_SESSION["$this->name_session"] = $admin;
  • header("location: $this->page"); // Recharge la page
  • }
  • else // Si le mot de passe est incorrect
  • {
  • echo "<script> setTimeout(\"window.location=\'$this->page\';\", $this->redir_time); </script>"; // Redirige apres 1.50 sec
  • echo "Identifiants invalides...";
  • }
  • }
  • else // Si un ou les champs sont vides
  • {
  • echo "<script> setTimeout(\"window.location=\'$this->page\';\", $this->redir_time); </script>";
  • echo "Les champs sont vides...";
  • }
  • die(); // Arrete le chargement de la page
  • }
  • function is_admin()
  • {
  • $admin = $_SESSION["$this->name_session"];
  • $admin = base64_decode($admin); // Decode les informations
  • $admin = explode(":", $admin); // Separe le mot de passe du login
  • $user = $admin[0]; // Login
  • $passwd = $admin[1]; // Mot de passe
  • if ($user != "" and $passwd != "") { // Verifie que les informations du cookie ne sont pas vides
  • $query = mysql_query("SELECT passwd FROM comptes WHERE user='$user'"); // Selectionne le mot de passe suivant le login
  • $row = mysql_fetch_array($query);
  • $vpasswd = $row["passwd"];
  • if($vpasswd == $passwd && $vpasswd != "") { // Verifie que le mot de passe est correct et qu'il n'est pas vide
  • return 1; // Retourne 1, l'utilisateur est deja logger
  • }
  • }
  • return 0; // Retourne 1, l'utilisateur n'est pas logger
  • }
  • function delog()
  • {
  • session_unset(); // Detruit la session
  • header("location: $this->page"); // Recharge la page
  • }
  • function get_name()
  • {
  • $admin = $_SESSION["$this->name_session"];
  • $admin = base64_decode($admin); // Decode le cookie
  • $admin = explode(":", $admin); // Separe le mot de passe du login
  • $user = $admin[0]; // Login
  • echo $user; // Affiche le login
  • }
  • }
  • ?>
<?

class auth
{
	var $user;
	var $passwd;
	var $page;
	var $name_session;
	var $redir_time;
	
	function auth() // Constructeur
	{
		$this->user = $_REQUEST["user"]; // Recupere le nom d'utilisateur courant
		$this->passwd = $_REQUEST["passwd"]; // Recupere le mot de passe courant
		$this->page = $_SERVER["PHP_SELF"]; // Recupere le nom de la page
		$this->name_session = "administration"; // Nom de la session
		$this->redir_time = 1500; // Temps de la redirection en ms
		
		session_start(); // Creer la session
		if (!$this->is_admin()) // Verifie si l'utilisateur est deja logger
		{
			if ($_REQUEST["auth"] <> 1) // Verifie si le formulaire doit etre validé
			{
				// Formulaire
				echo "<form action='$this->page?auth=1' method=post>
				<b>Nom d'utilisateur : <input type=text maxlength=30 name=user>
				<p>Mot de passe : <input type=password maxlength=12 name=passwd>
				<p><input type=submit value=Valider></form>";
				
				die(); // Arrete le chargement de la page
			}
			else // Validation du formulaire
			{
				$this->valid_auth();
			}
		}
	}
	
	function valid_auth()
	{	
		
		if($this->user != "" and $this->passwd != "") // Verifie que les champs ne sont pas vides
		{
			$this->passwd = md5($this->passwd); // Crypte le mot de passe
			$result = mysql_query("SELECT passwd FROM comptes WHERE user='$this->user'"); // Selectionne le mot de passe suivant le login
			$row = mysql_fetch_array($result);
			$vpasswd = $row["passwd"];
			if($vpasswd == $this->passwd) // Verifie si le mot de passe est correct
			{
				$admin = base64_encode("$this->user:$this->passwd"); // Encode les informations
				$_SESSION["$this->name_session"] = $admin; 
				header("location: $this->page"); // Recharge la page
			}
			else // Si le mot de passe est incorrect
			{
				echo "<script> setTimeout(\"window.location=\'$this->page\';\", $this->redir_time); </script>"; // Redirige apres 1.50 sec
				echo "Identifiants invalides...";
			}
		}
		else // Si un ou les champs sont vides
		{
			echo "<script> setTimeout(\"window.location=\'$this->page\';\", $this->redir_time); </script>";
			echo "Les champs sont vides...";
		}
		die(); // Arrete le chargement de la page
	}
	
	function is_admin() 
	{
		
		$admin = $_SESSION["$this->name_session"];
		$admin = base64_decode($admin); // Decode les informations
		$admin = explode(":", $admin); // Separe le mot de passe du login
		$user = $admin[0]; // Login 
		$passwd = $admin[1]; // Mot de passe
		
		if ($user != "" and $passwd != "") { // Verifie que les informations du cookie ne sont pas vides
			$query = mysql_query("SELECT passwd FROM comptes WHERE user='$user'"); // Selectionne le mot de passe suivant le login
			$row = mysql_fetch_array($query);
			$vpasswd = $row["passwd"]; 
			if($vpasswd == $passwd && $vpasswd != "") { // Verifie que le mot de passe est correct et qu'il n'est pas vide
				return 1; // Retourne 1, l'utilisateur est deja logger
			}
		}
		return 0; // Retourne 1, l'utilisateur n'est pas logger
	}
	
	function delog()
	{
		session_unset(); // Detruit la session
		header("location: $this->page"); // Recharge la page
	}
	
	function get_name()
	{
		$admin = $_SESSION["$this->name_session"];
		$admin = base64_decode($admin); // Decode le cookie
		$admin = explode(":", $admin); // Separe le mot de passe du login
		$user = $admin[0]; // Login 
		echo $user; // Affiche le login
	}
}

?>

 Conclusion

Merci de metttre vos commentaires, bon ou mauvais, et surtout si vous avez fait des modifications je veux bien les connaitres.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

14 octobre 2006 20:02:01 :
modification du code d'apres la remarque faite par kankrelune, merci
15 octobre 2006 21:24:04 :
un oubli

 Sources du même auteur

Source avec Zip CLASSE FORMULAIRE

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

 Sources en rapport avec celle ci

UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
Source avec Zip Source avec une capture LOGIN SHA1 + CRÉATION UTILISATEUR par aventurier19
Source avec Zip ESPACE ADMIN SIMPLE par mousaid_88
Source avec Zip CLASSE UTILISATEUR POUR GESTION SIMPLE DE LOGIN ET DROITS par Archima
Source avec Zip Source avec une capture GESTION DE DOCUMENTS par awaclid

Commentaires et avis

Commentaire de kankrelune le 14/10/2006 17:54:02

Ulla... une authentification basée sur les cookies... risqué... .. .

@ tchaOo°

Commentaire de wolfcyber95 le 14/10/2006 20:02:37

Merci kankrelune... j'ai suivi tes conseils

Commentaire de lefter le 16/10/2006 12:55:51

Utilise les variables de sessions + ip utilisateur pour l'identification, c'est moins risqué!!!

°Tchao°

Commentaire de kankrelune le 16/10/2006 13:30:08

C'est mieux... .. . ;o)

Sinon si je puis me permettre...

- 1 - je pense que ta classe ne devrait pas gérer l'affichage du formulaire et des messages d'erreur... sont boulot c'est de controler l'internaute pas de faire de l'affichage... qui plus est forcer l'affichage depuis ta classe peut poser des problèmes si on utilise un système de templates

- 2 - en reprenant le 1 ta methode valid_auth() devrait prendre en argument le nom d'utilisateur et le pass qui sont soummis... ce qui permet directement dans le code de faire...

if($monObj->valid_auth($_POST['uname'],$_POST['upass']))
   // c'est bon
      else
         // c'est pas bon

Qui plus est cela permet d'utiliser, dans le formulaire, les noms de champs que l'on veut et non pas d'être cantoné à user et passwd... .. .

- 3 - tu ne fait aucun echappement de caractère avant de faire ta requete... c'est risqué... très risqué... toujours utiliser mysql_real_escape_string sur les variables provenant de l'utilisateur... .. .

- 4 - session_unset() est déprécié il me semble... utilise plutot session_destroy()

$_SESSION = array();

if (isset($_COOKIE[session_name()]))
   setcookie(session_name(), '', time()-42000, '/');

session_destroy();

- 5 - ne t'embete pas à passer les valeurs de session dans base64, etc... cela pouvait s'avérer necessaire pour le stockage en cookie mais pour les session c'est inutile... tu perd du temps pour rien... .. .

$_SESSION[$this->name_session] = array(
                                    'name' => $this->user,
                                    'pass' => $this->passwd
                                      );

- 6 - avant de faire ton mysql_fetch_array() sur le résultat retourné par mysql vérifis que mysql à trouvée quelque chose... car si l'utilisateur c'est planté en entrant son pseudo ça risque de planter... qui plus est utilise empty plutot que != "" car si ta variable est null ça passe (et ça casse ?)... .. .

function valid_auth($name,$pass)
{  
  if(!empty($name) and !empty($pass)) // Verifie que les champs ne sont pas vides
  {
// Selectionne le mot de passe suivant le login
    $result = mysql_query('SELECT passwd FROM comptes WHERE user=\''.mysql_real_escape_string($name).'\'');
  
    if(mysql_num_rows($result) !== 1) // on a trouvé l'utilisateur ou pas ?
    return false;

    $pass = md5($pass); // Hasch le mot de passe
    $row = mysql_fetch_array($result);

    if($row['passwd'] === $pass) // Verifie si le mot de passe est correct
    {
      $_SESSION[$this->name_session] = array(
                                            'name' => $name,
                                            'pass' => $pass
                                            );
  
      return true;
    }
  }
  
  return false;
}

Voili voilou... .. .

@ tchaOo°

Commentaire de kankrelune le 16/10/2006 13:36:01

Ah j'oubliais... il peut être bien de rajouder en session un id spécial pour éviter le vol de session... va voir sur...

http://www.phpcs.com/codes/CLASSE-SESSION-AUTHENTIFICATION_39893.aspx

j'en parle brievement... .. .

@ tchaOo°

Commentaire de wolfcyber95 le 16/10/2006 16:30:50

merci beaucoup kankrelune, je vais faire ca, et pour un ID de session j'ai vu ca sur php.net je suis en train de modifier ma classe pour le faire, je la reposterai des que possible. ++

Commentaire de hotfirenet le 10/11/2006 15:04:53

Comment on l'utilise ta class car moi la poo je connais pas du tout

Commentaire de chuky78 le 19/11/2008 01:14:24

bonjour je suis dans le meme cas que hotfirenet, il me semble que quand on interroger la base il fallait mettre host et les mot de passe pour y asseder
est ce qu'avac le php 5 ou le poo ce n'est plus utiles, car la je m'y perds

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Faire une session d'administration [ par romega ] Salut, Je me remet a l'informatique je connais un peu le php et le html ainsi que dreamweaver et je découvre le mysql. Je compte faire un blog a base verification du login dans la base [ par elksibi ] Bonsoir,J'ai un probleme avec la redirection header ("location") et la verification du mot de passe dans la base en PHP.D'abord, j'ai un formulaire, q login password [ par isecso ] je peut pas accéder au base pour verifier login et password des utilisateur et voici les fichiers .Merci d'avance.---------------------page Admin----- login [ par azizmatta ] hi i have a problem with this code that let users login to the site.[code]&lt;?phpsession_start();include('database.php');if (!isset($_SESSION['logged login [ par azizmatta ] ca c'est le code pou la connexion des membres au site. mais quand je fais entrer un valide  username   and   password   ca me donne " Error : wrong u utilisation des sessions [ par ralinis ] Salu a tous.jai un problème avec les sessions en php.d'abord j'ai activer les parametre a on donc le problème ne se pose pas.le code est le suivant:++ Undefined variable!!! [ par aymane2006 ] bjr tt le monde, en fait jessai de fair un formulaire de login par pass,et a chaque fois je recoi un message de Undefined variable!!! voici le message Problème de login [ par Masterchiefer ] Bonjour tout le monde, je suis en train de créer un système de login à partir d'un code déjà écrit. J'ai fait les modifs nécessaires mais j'ai une err Erreur #1170 avec mysql lors de la création d'une base de donnée et quelques question de débutant. [ par dvdstory ] Bonjour, à tous. Je débute dans les bases de données.J'ai commencé avec mysql.J'ai réussi à créér des bases de données mais parfois j'ai un message d' Problème : script d'autentification [ par cirtey ] Bonjour; J'essaye de créer un script qui permet à une personne d'être authentifiée pour accéder à une page. Je suis sous wamp et dreamweaver v9. J'ai


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales