- Pour l'exemple, nous allons procéder par étape:
-
- A] Création de la base de données :
- - Créez une table - tbl_user -
- - Créez 3 champs : user_iduser : INT(11) NOT NULL PRIMARY AUTO INCR
- user_user : varchar(12) NOT NULL
- user_pass : varchar(12) NOT NULL
-
- B] Création du fichier access.inc.php :
- 1) Définition les constantes de connection BDD:
- <?
- // Constante de connection à la base de données
- define(STR_DBHOTE,"nom_de_l_hote_serveur_mysql");
- define(STR_DBNAME,"nom_de_la_base_de_données");
- define(STR_DBUSER,"user_de_la_base_de_données");
- define(STR_DBPASS,"pass_de_la_base_de_données");
- ?>
- 2) Création de la class access :
- <?
- // Class access
- class access()
- {
- // Ce que vous appelez variables se nomme dans une Class - Attribut -
- // (Lorsqu'elles se situent à ce niveau dans la class)
- // Utilisation d'un attribut : $this->nomdelavariable
- // Ce que vous appelez fonction se nomme dans une Class - Méthode -
- // Utilisation d'une methode : $this->nomdelamethode($var)
-
- /* -------------------------------------------------------------------------- */
- // Liste des attributs de la class
- /* --------------------------------------------------------------------------- */
- var int_bdd;
- var str_user;
- var str_pass;
-
- /* --------------------------------------------------------------------------- */
- // Initialisation de la class (ou Constructeur)
- /* --------------------------------------------------------------------------- */
- function access()
- {
- // Ouverture de session
- session_start();
- }
-
- /* --------------------------------------------------------------------------- */
- // Création de la méthode d'identification
- // paramètres entrants : $str_user ;string ;def: "" : Login
- // $str_pass ;string ;def: "" : Mot de passe
- // paramètres sortants : vrai ou faux ;boolean ;def: faux : resultat
- /* --------------------------------------------------------------------------- */
- function boo_identification($str_user = "", $str_pass = "")
- {
- // Acces aux variables de session
- global $sess_user, $sess_pass;
-
- // Connection au serveur MySQL + gestion d'erreur.
- if( !($this->bdd=@mysql_connect(STR_DBHOTE, STR_DBUSER,STR_DBPASS)) ) return false;
-
- // Connection à la Bdd + gestion d'erreur.
- if( !(@mysql_select_db("STR_DBNAME",$this->bdd)) ) return false;
-
- // Récupération des paramètres entrants
- if($str_user=="" || $str_pass=="")
- {
- // Récupération des paramètres de sessions
- $str_user=$sess_user;
- $str_pass=$sess_pass;
- if($str_user=="" || $str_pass=="") return false;
- }
-
- // Vérification des identifiants dans la base de données
- $arr_data = mysql_query("SELECT * FROM tbl_user WHERE LCASE(user_user) = '".strtolower($str_user)."' AND LCASE(user_pass) = '".strtolower($str_pass)."'");
- if(mysql_num_rows($arr_data)>0)
- {
- // Enregistrement des informations dans les variables de sessions
- $sess_user = $str_user;
- session_register("sess_user");
- $sess_pass = $str_pass;
- session_register("sess_pass");
- return true;
- } else return false;
- }
-
- }
- ?>
-
- C] Création du fichier access.php :
- Ce fichier va servir de filtre d'identification, Il sera à inclure dans tous les pages nécessitant une identification (appel: include("access.php"); )
- <?
- // Ouverture de session
- session_start();
-
- // Initialisation de la class access (ou Instance)
- $cls_access = new access();
-
- // Vérification des identifiants par appel de la méthode boo_identification
- if( !$cls_access->boo_identification($str_frm_user, $str_frm_pass) )
- {
- // Destruction de la session
- @session_destroy();
-
- // Vérification que l'url de redirection n'est pas vide
- if($str_url=="") $str_url = $_SERVER['SERVER_NAME'];
-
- // Script javascript de redirection à la page d'identification
- // (En dehors des balise PHP)
- ?>
- <script>
- alert("Problème d'identification!\nVeuillez vous identifier.\nMerci");
- top.document.location.href = "http://<? print($str_url); ?>";
- </script>
- <?
- }
- ?>
-
- D] Création du fichier access.html
- Ce fichier est le formulaire d'identification. Les informations saisie seront envoyées à la première page de l'acces privé - index.php - ).
- <html>
- <head>
- <title>Identification</title>
- </head>
- <script>
- // Vérification des champs vides
- function IsEmpty(chaine,err) {
- if(chaine=="") return true;
- else return err;
- }
-
- // Envois des informations
- function send() {
- var vide = false;
- vide = IsEmpty(document.frmaccess.str_frm_user.value,vide);
- vide = IsEmpty(document.frmaccess.str_frm_pass.value,vide);
- if(vide) alert("Tous les champs obligatoires (*) ne sont pas remplis.");
- else document.accesform.submit();
- }
- </script>
- <body>
- <center>
- <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
- <tr>
- <td align="center" class="titre1">IDENTIFICATION</b></td>
- </tr>
- <tr>
- <td align="center"><table border="1" cellpadding="0" cellspacing="0" width="30%" height="50%">
- <form name="frmaccess" action="index.php" method="post">
- <tr>
- <td width="15%" align="center" bgcolor="#FFFCEB">Login* :</td>
- <td width="15%" align="center" bgcolor="#CEBFFF"><input type="text" name="str_frm_user" value="" maxlength="12"></td>
- </tr>
- <tr>
- <td width="15%" align="center" bgcolor="#FFFCEB">Mot de passe* :</td>
- <td width="15%" align="center" bgcolor="#CEBFFF"><input type="password" name="str_frm_pass" value="" maxlength="12"></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><a href="javascript:send()">Valider</a></td>
- </tr>
- </form>
- </table></td>
- </tr>
- <tr>
- <td align="centerby <a href="http://www.apxa.com" target="_blank">ApxA</a></td>
- </tr>
- </table>
- </center>
- </body>
- </html>
-
- E] Création du fichier index.php
- <?
- include("access.php");
- ?>
- <html>
- <head>
- <title>Identification</title>
- </head>
- <body>
- <center>
- <h1>Bonjour et bienvenue dans un accés nécessitant une identification.
- Ce code vous est proposé par <a href="http://www.apxa.com" target="_blank">ApxA</a></h1>
- </center>
- </body>
- </html>
Pour l'exemple, nous allons procéder par étape:
A] Création de la base de données :
- Créez une table - tbl_user -
- Créez 3 champs : user_iduser : INT(11) NOT NULL PRIMARY AUTO INCR
user_user : varchar(12) NOT NULL
user_pass : varchar(12) NOT NULL
B] Création du fichier access.inc.php :
1) Définition les constantes de connection BDD:
<?
// Constante de connection à la base de données
define(STR_DBHOTE,"nom_de_l_hote_serveur_mysql");
define(STR_DBNAME,"nom_de_la_base_de_données");
define(STR_DBUSER,"user_de_la_base_de_données");
define(STR_DBPASS,"pass_de_la_base_de_données");
?>
2) Création de la class access :
<?
// Class access
class access()
{
// Ce que vous appelez variables se nomme dans une Class - Attribut -
// (Lorsqu'elles se situent à ce niveau dans la class)
// Utilisation d'un attribut : $this->nomdelavariable
// Ce que vous appelez fonction se nomme dans une Class - Méthode -
// Utilisation d'une methode : $this->nomdelamethode($var)
/* -------------------------------------------------------------------------- */
// Liste des attributs de la class
/* --------------------------------------------------------------------------- */
var int_bdd;
var str_user;
var str_pass;
/* --------------------------------------------------------------------------- */
// Initialisation de la class (ou Constructeur)
/* --------------------------------------------------------------------------- */
function access()
{
// Ouverture de session
session_start();
}
/* --------------------------------------------------------------------------- */
// Création de la méthode d'identification
// paramètres entrants : $str_user ;string ;def: "" : Login
// $str_pass ;string ;def: "" : Mot de passe
// paramètres sortants : vrai ou faux ;boolean ;def: faux : resultat
/* --------------------------------------------------------------------------- */
function boo_identification($str_user = "", $str_pass = "")
{
// Acces aux variables de session
global $sess_user, $sess_pass;
// Connection au serveur MySQL + gestion d'erreur.
if( !($this->bdd=@mysql_connect(STR_DBHOTE, STR_DBUSER,STR_DBPASS)) ) return false;
// Connection à la Bdd + gestion d'erreur.
if( !(@mysql_select_db("STR_DBNAME",$this->bdd)) ) return false;
// Récupération des paramètres entrants
if($str_user=="" || $str_pass=="")
{
// Récupération des paramètres de sessions
$str_user=$sess_user;
$str_pass=$sess_pass;
if($str_user=="" || $str_pass=="") return false;
}
// Vérification des identifiants dans la base de données
$arr_data = mysql_query("SELECT * FROM tbl_user WHERE LCASE(user_user) = '".strtolower($str_user)."' AND LCASE(user_pass) = '".strtolower($str_pass)."'");
if(mysql_num_rows($arr_data)>0)
{
// Enregistrement des informations dans les variables de sessions
$sess_user = $str_user;
session_register("sess_user");
$sess_pass = $str_pass;
session_register("sess_pass");
return true;
} else return false;
}
}
?>
C] Création du fichier access.php :
Ce fichier va servir de filtre d'identification, Il sera à inclure dans tous les pages nécessitant une identification (appel: include("access.php"); )
<?
// Ouverture de session
session_start();
// Initialisation de la class access (ou Instance)
$cls_access = new access();
// Vérification des identifiants par appel de la méthode boo_identification
if( !$cls_access->boo_identification($str_frm_user, $str_frm_pass) )
{
// Destruction de la session
@session_destroy();
// Vérification que l'url de redirection n'est pas vide
if($str_url=="") $str_url = $_SERVER['SERVER_NAME'];
// Script javascript de redirection à la page d'identification
// (En dehors des balise PHP)
?>
<script>
alert("Problème d'identification!\nVeuillez vous identifier.\nMerci");
top.document.location.href = "http://<? print($str_url); ?>";
</script>
<?
}
?>
D] Création du fichier access.html
Ce fichier est le formulaire d'identification. Les informations saisie seront envoyées à la première page de l'acces privé - index.php - ).
<html>
<head>
<title>Identification</title>
</head>
<script>
// Vérification des champs vides
function IsEmpty(chaine,err) {
if(chaine=="") return true;
else return err;
}
// Envois des informations
function send() {
var vide = false;
vide = IsEmpty(document.frmaccess.str_frm_user.value,vide);
vide = IsEmpty(document.frmaccess.str_frm_pass.value,vide);
if(vide) alert("Tous les champs obligatoires (*) ne sont pas remplis.");
else document.accesform.submit();
}
</script>
<body>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td align="center" class="titre1">IDENTIFICATION</b></td>
</tr>
<tr>
<td align="center"><table border="1" cellpadding="0" cellspacing="0" width="30%" height="50%">
<form name="frmaccess" action="index.php" method="post">
<tr>
<td width="15%" align="center" bgcolor="#FFFCEB">Login* :</td>
<td width="15%" align="center" bgcolor="#CEBFFF"><input type="text" name="str_frm_user" value="" maxlength="12"></td>
</tr>
<tr>
<td width="15%" align="center" bgcolor="#FFFCEB">Mot de passe* :</td>
<td width="15%" align="center" bgcolor="#CEBFFF"><input type="password" name="str_frm_pass" value="" maxlength="12"></td>
</tr>
<tr>
<td colspan="2" align="center"><a href="javascript:send()">Valider</a></td>
</tr>
</form>
</table></td>
</tr>
<tr>
<td align="centerby <a href="http://www.apxa.com" target="_blank">ApxA</a></td>
</tr>
</table>
</center>
</body>
</html>
E] Création du fichier index.php
<?
include("access.php");
?>
<html>
<head>
<title>Identification</title>
</head>
<body>
<center>
<h1>Bonjour et bienvenue dans un accés nécessitant une identification.
Ce code vous est proposé par <a href="http://www.apxa.com" target="_blank">ApxA</a></h1>
</center>
</body>
</html>