Gestion des membres (login/logout) php/mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 45 280 fois - Téléchargée 30 fois

Contenu du snippet

Ce code est tout simplement l'interface de gestion de membres que j'ai mis sur mon site.
Il permet de se logger de n'importe quel endroit du site puisque je l'appelle à partir de mon header.
Ce script utilise les sessions et MySQL (pour votre tableau de membres).

Il est à ma sauce mais compréhensible tel quel donc je n'ai pas changé mon code.
:P

Source / Exemple :


<?php
//auth.php

####################################################################################################################

//Cette permiere fonction vérifie le login et le mot de passe que vous avez entré.
//Evidemment il vous faudra la changer vous même car elle dépend de l'organisation de votre tableau
//de membres dans votre base de données.
//En outre, j'utilise la fonction db_connect qui est située dans mon common_db.inc. (ce common_db est
//appelé via le header donc il n'est pas rappelé ici).
//vous remarquerez que vous devez avoir ouvert une session pour que le script marche.
//Enfin dernière chose, j'ai choisi (car j'en avais besoin) de distinguer les admins des membres lambda.
//C'est pourquoi j'enregistre la variable de session $admin.

function verification($lg, $pw, $sd) {
global $nombd_defaut;
global $PHP_SELF;
global $PHPSESSID;
global $member_pass, $member_id, $login, $admin;
$error_login = false;
if($sd != '') {
	$id_lien = db_connect($nomdb = '');
	if(!$id_lien) error_message(sql_error());
	$recherche = "SELECT User_ID,login, password, admin FROM utilisateurs WHERE login='$lg' AND password='$pw'";
	$resultat = mysql_query($recherche);
	if(!$resultat) error_message(sql_error());
	$nb_found = mysql_fetch_row($resultat);
	$nom_total_resultats = $nb_found[0];
	if($nom_total_resultats != 0) {
		$donnees_rech = mysql_fetch_array(mysql_query($recherche));
		mysql_close($id_lien);
		$member_id = $donnees_rech['User_ID'];
		$login = $donnees_rech['login'];
		$member_pass = $donnees_rech['password'];
		session_register('member_id');
		session_register('login');
		session_register('member_pass');
		if($donnees_rech['admin'] == 1) {
			$admin = 1;			
			session_register('admin');
			}

		}
		else {
			$error_login = true;
		}
	}
	else {
		$error_login = true;
	}

if($error_login) {
	echo "Cannot authenticate.\n";
	echo "<br>\n";
	login();
	}
	else {
		details();
	}
}

####################################################################################################################

//cette fonction affiche un formulaire de login si le membre n'est pas authentifié, et
//appelle la fonction details() dans le cas contraire.

function login() {
global $PHPSESSID;
global $nom, $prenom;
global $PHP_SELF;

if(session_is_registered('member_id')) {
	details();
	}
	else {
echo "<form name =\"auth\" action=\"$PHP_SELF?action=verification\" method=\"post\">\n";
echo "login\n<br>\n";
echo "<input type=\"text\" name=\"form_login\" size=\"12\" maxlength=\"15\" class=\"border\">\n";
echo "<br>\n";
echo "password\n<br>\n";
echo "<input type=\"password\" name=\"form_password\" size=\"12\" maxlength=\"15\" class=\"border\">\n";
echo "<br>\n";
echo "<br>\n";
echo "<input type=\"hidden\" name=\"send\" value=\"1\" />\n";
echo "<input type=\"submit\" value=\"login\" class=\"border\">\n";
echo "</form>\n";
	}
}

####################################################################################################################

//details() affiche ce que vous voulez afficher une fois que votre membre s'est loggé.
//Cette fonction dépend donc à 100% de vous seul :P
//On affiche un lien vers le panneau d'administration du membre (mypanel.php)
//Puis on n'affiche un lien vers admin.php que si le membre est loggé en tant qu'admin.

function details() {
global $PHP_SELF;
global $PHPSESSID;
global $login, $admin;

if(session_is_registered('member_id')) {
	echo "<img src=\"images/icons/minimembre.gif\" align=\"absmiddle\"> <b>$login</b>\n<br>\n<br>\n";
	echo "<a href=\"mypanel.php\">>> My CP</a>\n<br>\n";
	if(session_is_registered('admin') && $admin == 1) {
		echo "<a href=\"admin.php\">>> Admin CP</a>\n<br>\n<br>\n";
		}
		else {
		echo "<br>\n";
		}
	echo "[ <a href=\"$PHP_SELF?action=logout\">Log out</a> ] \n";
	}
	else {
		login();
	}

?>
</BODY>
</HTML>
<?
}

#############################################################################################################################

//dernière fonction qui détruit la session en cours pour délogger le membre

function logout() {
global $PHPSESSID;
global $PHP_SELF;

session_unset();
session_destroy();
login();
}

##############################################################################################################################

//Et enfin un petit switch qui s'occupe de tout agencer :P

switch($action) {
	case "login" :
		login();
	break;
	case "logout" :
		logout();
	break;
	case "verification" :
		verification($form_login, $form_password, $send);
	break;
	case "details" :
		details();
	break;
	default:
		login();
	break;
}
?>

Conclusion :


voila voila
ne faites pas attention à la sécurité parceque ca n'a pas été ma préoccupation première pour faire ce script. Libre à vous d'adapter ça à vos besoins.

A voir également

Ajouter un commentaire

Commentaires

Y'a t'il quelqu'un ?
Messages postés
217
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
16 août 2018

si j'ai bien compris ... il faut aller voir ailleurs !

non ???
Messages postés
1
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
25 février 2012

comment cera activé s code???
Messages postés
1
Date d'inscription
vendredi 18 mars 2011
Statut
Membre
Dernière intervention
4 novembre 2011

salut
est ce que je peux avoir le code?
voilà mon email.samaddog@gmail.com
je suis un étudiant en 2eme année genie informatique .
Messages postés
126
Date d'inscription
samedi 28 novembre 2009
Statut
Membre
Dernière intervention
9 juin 2013

^^,je parlai en general,je ne peu pas savoir si ca la vexé,et je trouve que tu a raison sur ce point:
"on ne peut pas détester un code, je pense :)"
++
Afficher les 17 commentaires

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.