Soyez le premier à donner votre avis sur cette source.
Vue 18 111 fois - Téléchargée 1 770 fois
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>
28 nov. 2008 à 08:59
Je suis un tout petit débutant, je ne sais pas si il y a un niveau en dessous . . .
Je viens de tester le code et j'ai créé dans Mysql un user.
Seulement j'ai cette erreur qui s'affiche :
Ligne : 19
Car : 7
Erreur : 'document.accessform' a la valeur Null ou n'est pas un obje
Code 0
URL : http://127.0.0.1/irp/access.html
La ligne 19 : else document.accesform.submit();
Merci beaucoup pour votre aide.
Patrick
5 nov. 2007 à 10:33
29 mai 2007 à 16:46
session_start() doit toujours etre en début de code ^^
fais plutot :
<?php session_start();
include "access.php";
include "entete.php";
include "menu.php";?>
et pas de session_start(); dans access.php
en espérant que cela marche
14 mars 2007 à 11:43
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/139/sdc/e/3/magetyo/securise/access.php:1) in /mnt/139/sdc/e/3/magetyo/securise/access.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/139/sdc/e/3/magetyo/securise/access.php:1) in /mnt/139/sdc/e/3/magetyo/securise/access.php on line 3
Voici le début du code de access.php:
<?
// Ouverture de session
session_start();
include "access.php";
Et voici le début de mes pages:
<?php include "access.php";?>
<?php include "entete.php";?>
<?php include "menu.php";?>
Aidez-moi svp... ;-(
14 mars 2007 à 11:05
C'est parce que j'utilisait une meta de redirection...
débutant ;-)
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.