|
Authentification d'une zone |
|
Écrit par [VYS]
|
|
09-11-2005 |
|
Script d'authentification basique (login/mot de passe) gérant la reconnaissance du visiteur grace à la session et à un panneau de connexion "générique".
La structure de la table : CREATE TABLE `tblAuth `
(
`AuthID` int(11) NOT NULL AUTO_INCREMENT,
`AuthPassword` varchar(255) DEFAULT NULL,
PRIMARY KEY (`AuthID`),
)
TYPE=MyISAM; security_inc.php : <?
session_start();
function f_verifLogin()
{
if (intval($_SESSION["AUTH"]) == 0)
{
require("login_inc.php");
}
return True;
}
f_verifLogin();
?>pageSecure.php <?
require("security_inc.php");
?>
<html>
<body>
Bravo vous êtes identifié
Ceci est votre Page de Contenu
</body>
</html>login_inc.php<?
$AUTH = 0;
$li_Login = intval($_POST["ai_Login"]);
$ls_Password = $_POST["as_Password"];
if (isset($_POST["as_Action"]) && $li_Login > 0)
{
f_myConnection();
$SQL = 'SELECT * FROM tblAuth WHERE AuthID = '.$li_Login;
$lp_Info = f_myQuery($SQL);
if($lq_Info = mysql_fetch_array($lp_Info))
{
if ($lq_Info["AuthPassword"] === $ls_Password)
{
$AUTH = $lq_Info["AuthID"];
$_SESSION["AUTH"] = $AUTH;
}
else
{
$ls_msg = "Mot de Passe incorrect";
}
}
else
{
$ls_msg = "Login Inconnu";
}
mysql_close();
}
else
{
$li_Login = "";
}
if ($AUTH == 0)
{ ?>
<form name="LoginForm" method="post">
<center><? echo $ls_msg ?></center>
<table cellspacing="0" cellpadding="5" width="400" align="center" border="0">
<tr><td><b>ID Login</b></td><td><input name="ai_Login"> </td></tr>
<tr><td><b>Code</b></td><td><input type="password" name="as_Password"></td></tr>
<tr align="center"><td colspan="2">
<input type="submit" name="as_Action">
</td></tr>
</table>
</form>
<? } ?>Note : - Remarquez ici l'utilisation du comparateur "===" au lieu de l'habituel "==". Ceci est une manière de faire indispensable pour éviter tout problème de sécurité. Vous pouvez en savoir plus : Opérateurs de comparaison
- les fonctions f_myConnection() et f_myQuery() sont propres à notre framework, il vous suffira de les remplacer par votre méthode de connexion et votre méthode d'exécution de requete SQL
- Les deux fichiers contenant du html sont les plus simples possibles. Il vous faudra évidemment ajouter votre framework graphique pour leur donner la présentation conforme à celle de votre site
Discuter de cet article dans les forums. (0 Messages) |