Gestion d'espace administration

Description

Voici une classe permettant de gerer totalement votre espace administration.

Source / Exemple :


<?

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.

Codes Sources

A voir également

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.

Du même auteur (wolfcyber95)