File manager authentification

PHP5 / Mysql
Création d'une authentification pour un site internet
Session, base de données, php
I. Présentation
Objectifs :
L'objectif de ce tutoriel est de créer une page d'authentification pour un site internet et de protéger certaines pages du
site.
Les identifiants et mots de passe seront stockés dans une base de données.
Logiciels utilisés pour ces services :
– Apache 2/PhP5
– Mysql-server
– Phpmyadmin
II. Création de la base de données
L'objectif ici est de créer une base de données pour le site avec une table « users » qui stockera les identifiants et mots
de passe des comptes utilisateurs.
Pour cela, il faut se rendre sur l'interface de phpmyadmin sur le serveur. Http://ip_serveur/phpmyadmin.
La première étape consiste à créer une base de donnée « MonSite » dans laquelle sera stocké les différentes tables liées
au site dont la table « users ».
Une fois cette base créée, il nous faut pour atteindre notre objectif, créer une table « users » qui aura 3 champs : l'id
utilisateur, le login et le mot de passe.
Nous avons besoin d'un champ de type Integer pour l'id de l'utilisateur avec l'AUTO INCREMENT et l'Inedx à
PRIMARY, d'un champ login de type Varchar 100 (chaine de caractères) pour le login puis d'un champ password de
type Varchar 100 pour stocker les mots de passes :
Maintenant que nous avons créé notre base et note table users, il nous reste à créer un compte utilisateur du serveur
Mysql pour que le script php puisse lire les informations de la base.
Pour cela il faut retourner à la page d'accueil de phpmyadmin (petite mainson dans le menu de gauche) et cliquer sur
Privilèges en haut.
Il faut maintenant cliquer sur Ajouter un utilisateur :
Nous allons saisir les informations du compte, dans l'exemple : login « access_site » et password « motdepasse »
Puis cliquer sur Exécuter.
Sur la nouvelle page dans la partie « Priviles spécifiques à une base de données » nous allons sélectionner la base
« MonSite ».
Puis enfin nous allons sélectionner SELECT, INSERT, UPDATE de DELETE
Après avoir cliqué sur Exécuter, notre base de données est prête et nous avons un utilisateur pour s'y connecter et qui
peut lire les informations contenues dans la base de notre site.
III. Création de la partie PHP5 / HTML
Ce dont nous avons besoin c'est d'un formulaire d'authentification, d'un système de vérification, d'un moyen de se
connecter à la base de données, d'un formulaire d'ajout de compte et d'un moyen pour vérifier si l'utilisateur s'est
authentifié avant d'afficher la page.
Commençons par le début du commencement le formulaire d'authentification. Ce formulaire appellera le script auth.php
Page : auth.html
<html>
<head><title>Authentification requise</title></head>
<body>
<center>
<h2>Merci de vous authentifier</h2>
<form action="auth.php">
<table border="0" width="70%">
<tr>
<td><center>Nom d'utilisateur : </center></td>
<td><center><input type="text" name="login"/><center></td>
</tr>
<tr>
<td><center>Mot de passe : </center></td>
<td><center><input type="password" name="password"
/></center></td>
</tr>
</table>
<input type="submit" value="Valider" />
</form>
</center>
</body>
<html>
Il nous faut aussi maintenant un formulaire pour créer les comptes utilisateurs (qui seront stockés dans la table
« users »). Ce formulaire appellera le script d'ajout « add_user.php ».
Page : add_user.php
<html>
<head><title>Création de compte utilisateur</title></head>
<body>
<center>
<h2>Merci de saisir les identifiants du compte</h2><br /><br />
<form action="add_user.php">
<table border="0" width="30%">
<tr>
<td><center>Nom d'utilisateur : </center></td>
<td><center><input type="text" name="login"/><center></td>
</tr>
<tr>
<td><center>Mot de passe : </center></td>
<td><center><input type="password" name="password"
/></center></td>
</tr>
</table><br /><br />
<input type="submit" value="Valider" />
</form>
</center>
</body>
<html>
Maintenant que la partie html est terminée il nous reste la partie php. Cette partie sera composée de 4 fichiers :
– le fichier auth.php qui vérifiera les informations saisies par l'utilisateur
– le fichier add_user.php qui permettra d'ajouter les nouveaux utilisateurs
– un fichier fonction.php qui contiendra la fonction de connexion à la base de données et d'exécution des
requètes sql.
– Un fichier conf.site qui contiendra les informations de connexion à la base de données.
Commençons par le fichier conf.site. Ce fichier doit contenir les information d'accès à la base de données (nom
d'utilisateur, mot de passe, adresse ip du serveur, nom de la base de données).
Fichier conf.site :
<?
$BDD_hote="localhost";
$BDD_nmDB="MonSite";
$BDD_user="acces_site";
$BDD_pass="motdepasse";
?>
Avant de nous occuper des scripts d'ajout de compte et d'authentification, il nous reste le fichier fonctions.php à créer
qui contiendra les fonctions d'exécutions des requètes.
Fichier fonctions.php
<?
// Fonction d'exécution des requètes SQL
function sql($request)
{
global $bdd;
if(strrchr($request, 'SELECT'))
{
$req = $bdd->query($request);
}
else
{
$bdd->exec($request);
}
if(!empty($req))
{
while ($data = $req->fetch())
{
$res[] = $data;
}
return $res;
}
else
{
return false;
}
}
?>
Avant de créer le fichier auth.php pour gérer les authentification, nous allons créer le fichier add_user.php pour ajouter
un premier utilisateur de notre site dans notre base de données afin de pouvoir par la suite tester la page
d'authentification.
Fichier add_user.php
<?
// Fichier add_user.php
// On intègre les informations de connexion à la base de données ainsi que le fichier (ou librairie
fonctions.php)
include("conf.site");
include("fonctions.php");
// On intialise la connexion à la base de données
$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_nmDB, $BDD_user, $BDD_pass);
// On récupère ce que l'utilisateur à saisi, si il n'a rien saisi (login ou mot de passe) on le renvoi sur la page de
création de compte
if(isset($_REQUEST['login']) && isset($_REQUEST['password']))
{
// Le formulaire précédent a été bien rempli
// On prépare la requète SQL pour enregistrer l'utilisateur
$requete="INSERT INTO `MonSite`.`users` (`id`, `login`, `password`) VALUES (NULL, '".
$_REQUEST['login']."', '".md5($_REQUEST['password'])."');";
// Ici md5 permet de crypter le mot de passe et de le stocker crypté dans la base de données
// On exécute la requete grace à la fonction sql présente dans le fichier fonctions.php
sql($requete);
// On prévient que le compte à bien été créé
echo "Compte ajouté a la base";
// On pourrait aussi renvoyer vers une page de confirmation par
// header("location : confirmation.html");
}
else
{
// Le formulaire n'est pas complet
// On renvoit vers la page précédente
header("location : add_user.html");
}
?>
Pour tester notre ajout de compte il suffit d'aller dans un navigateur à l'adresse
http://ipduserveur/monsite/add_user.html, d'ajouter un compte puis de vérifier grace à phpmyadmin si nous avons bien
un nouvel utilisateur dans notre table users.
Maintenant que nous avons pu ajouter un compte à notre base « users », nous allons pouvoir créer notre fichier auth.php
qui se chargera de comparer les informations saisies par l'utilisateur et les informations saisies dans la base de données.
Fichier auth.php
<?
//On prépare l'utilisation des variables de fonctions (variable qui sont stockées sur le serveur pour chaque
session ouverte)
session_start();
// Fichier auth.php
// On intègre les informations de connexion à la base de données ainsi que le fichier (ou librairie
fonctions.php)
include("conf.site");
include("fonctions.php");
// On intialise la connexion à la base de données
$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_nmDB, $BDD_user, $BDD_pass);
// On récupère ce que l'utilisateur à saisi, si il n'a rien saisi (login ou mot de passe) on le renvoi sur la page de
création de compte
if(isset($_REQUEST['login']) && isset($_REQUEST['password']))
{
// Si l'utilisateur à rempli tous les champs on vérifie ce qu'il à saisit
// En recherchant dans la base de donner, un login et un mot de passe crypté correspondant à ce qu'il
à saisi.
// Si on a pas de réponse, alors il y a une erreur d'authentification
// Sinon l'utilisateur a réussi à s'authentifier
$requete = "SELECT * FROM users WHERE `login`='".$_REQUEST['login']."' AND
`password`='".md5($_REQUEST['password'])."'";
if(sql($requete))
{
// Nous avons bien le bon utilisateur
// Nous créons la variable de session
$_SESSION['auth']="AUTH : OK";
echo "Vous êtes authentifié";
}
else
{
// Nous n'avons pas les bonnes informations
// On renvoi vers la page d'authentification
header("location: auth.html");
}
}
else
{
// Formulaire incomplet
// On renvoit vers la page précédente
header("location: auth.html");
}
?>
Pour tester notre authentification, il nous suffit d'aller sut l'adresse http://ipduserveur/monsite/auth.html, puis d'utiliser
les informations d'authentifications de l'utilisateur que nous avons créé à l'aide de notre formulaire précédemment.
Enfin pour protéger une page d'un site il nous suffira de vérifier en haut de chaque page si nous avons une session
ouverte ou pas pour le site à l'aide du code suivant :
<?
session_start();
if(!isset($_SESSION['auth']))
{
header("location:auth.html");
}
?>
Ce code en haut de chaque page vérifie si nous avons une session web ouverte sur le serveur avec notre variable de
session, sinon il nous renvoit directement sur la page d'authentification.
Il faut rajouter ce morceau de code sur la page add_user.html ainsi que tout en haut de add_user.php.
Guillaume Evain – 2011
contact@evain.info
http://www.evain.info
+33 / 0 - 6-21-53-56-81

Recommandé

Pots de Miel, Honeypot informatique - Sécurité informatique par
Pots de Miel, Honeypot informatique - Sécurité informatiquePots de Miel, Honeypot informatique - Sécurité informatique
Pots de Miel, Honeypot informatique - Sécurité informatique🏁 Pierre-Henry Soria 💡
8.9K vues9 diapositives
Créer une barre de progression grâce à PHP 5.4 par
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4🏁 Pierre-Henry Soria 💡
6.3K vues9 diapositives
Persona: un système d'identité pour le Web par
Persona: un système d'identité pour le WebPersona: un système d'identité pour le Web
Persona: un système d'identité pour le WebFrancois Marier
1.1K vues105 diapositives
Atelier WordPress: Création d&rsquo;extension WordPress par
Atelier WordPress: Création d&rsquo;extension WordPressAtelier WordPress: Création d&rsquo;extension WordPress
Atelier WordPress: Création d&rsquo;extension WordPressIZZA Samir
1.1K vues23 diapositives
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p... par
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...
Vous avez dit protocoles Web d’authentification et d’autorisation ! De quoi p...Microsoft
1.9K vues35 diapositives
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime... par
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...Cyber Security Alliance
2.1K vues33 diapositives

Contenu connexe

En vedette

Construcción de la tecnología educativa par
Construcción de la tecnología educativaConstrucción de la tecnología educativa
Construcción de la tecnología educativaHECJ
303 vues13 diapositives
P.tipos de redes par
P.tipos de redesP.tipos de redes
P.tipos de redesrgemelo
291 vues10 diapositives
015 emulación oct. 05 de 2010 par
015 emulación oct. 05 de 2010015 emulación oct. 05 de 2010
015 emulación oct. 05 de 2010Noly Manuel Lopez
1.1K vues8 diapositives
Evaluación del entorno económico del mercado canadiense y chileno, para la in... par
Evaluación del entorno económico del mercado canadiense y chileno, para la in...Evaluación del entorno económico del mercado canadiense y chileno, para la in...
Evaluación del entorno económico del mercado canadiense y chileno, para la in...Johnochoa
1.3K vues179 diapositives
Guía Casa de Vidas - Sesión no.4 par
Guía Casa de Vidas - Sesión no.4Guía Casa de Vidas - Sesión no.4
Guía Casa de Vidas - Sesión no.4Miguel Rivera
368 vues14 diapositives
Agentes moviles y computacion obicua par
Agentes moviles y computacion obicuaAgentes moviles y computacion obicua
Agentes moviles y computacion obicualopezcamilo
313 vues4 diapositives

En vedette(20)

Construcción de la tecnología educativa par HECJ
Construcción de la tecnología educativaConstrucción de la tecnología educativa
Construcción de la tecnología educativa
HECJ303 vues
P.tipos de redes par rgemelo
P.tipos de redesP.tipos de redes
P.tipos de redes
rgemelo291 vues
Evaluación del entorno económico del mercado canadiense y chileno, para la in... par Johnochoa
Evaluación del entorno económico del mercado canadiense y chileno, para la in...Evaluación del entorno económico del mercado canadiense y chileno, para la in...
Evaluación del entorno económico del mercado canadiense y chileno, para la in...
Johnochoa1.3K vues
Guía Casa de Vidas - Sesión no.4 par Miguel Rivera
Guía Casa de Vidas - Sesión no.4Guía Casa de Vidas - Sesión no.4
Guía Casa de Vidas - Sesión no.4
Miguel Rivera368 vues
Agentes moviles y computacion obicua par lopezcamilo
Agentes moviles y computacion obicuaAgentes moviles y computacion obicua
Agentes moviles y computacion obicua
lopezcamilo313 vues
Effectuer un achat (Artiste independant / Particuliers) par nextelevel
Effectuer un achat (Artiste independant / Particuliers)Effectuer un achat (Artiste independant / Particuliers)
Effectuer un achat (Artiste independant / Particuliers)
nextelevel543 vues
Inteligencia emocional y comunicación par bc16alcantara
Inteligencia emocional  y comunicaciónInteligencia emocional  y comunicación
Inteligencia emocional y comunicación
bc16alcantara274 vues
Las reglas del trading,finalizado par Jose Guerra
Las reglas del trading,finalizadoLas reglas del trading,finalizado
Las reglas del trading,finalizado
Jose Guerra687 vues
Deber clases de problemas par Dolo .
Deber  clases de problemasDeber  clases de problemas
Deber clases de problemas
Dolo .338 vues
Aspectos generales de la práctica docente nº3 par aida
Aspectos generales de la práctica docente nº3Aspectos generales de la práctica docente nº3
Aspectos generales de la práctica docente nº3
aida851 vues
Le+cinéma..iria par Armelle
Le+cinéma..iriaLe+cinéma..iria
Le+cinéma..iria
Armelle551 vues
Partager l'instant présent sur les réseaux sociaux par Samir SIRAT
Partager l'instant présent sur les réseaux sociauxPartager l'instant présent sur les réseaux sociaux
Partager l'instant présent sur les réseaux sociaux
Samir SIRAT1.3K vues
Ejercicios del 71 al 84 par NORMA
Ejercicios del 71 al 84Ejercicios del 71 al 84
Ejercicios del 71 al 84
NORMA422 vues
la historia de burro par lmedinapa
la historia de burrola historia de burro
la historia de burro
lmedinapa1.2K vues

Similaire à File manager authentification

Mpdf 9 par
Mpdf 9Mpdf 9
Mpdf 9Moez Moezm
84 vues8 diapositives
démonstration code source site web ecole.docx par
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docxVincentBweka
16 vues9 diapositives
Crud+tutorial+fr par
Crud+tutorial+frCrud+tutorial+fr
Crud+tutorial+frMustapha Nakous
1.3K vues19 diapositives
11. Autorisations.pptx par
11. Autorisations.pptx11. Autorisations.pptx
11. Autorisations.pptxZinebJbilou
7 vues21 diapositives
Mini projet individuel php par
Mini projet individuel phpMini projet individuel php
Mini projet individuel phpKhadim Mbacké
21.1K vues16 diapositives
php2 : formulaire-session-PDO par
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
1.9K vues25 diapositives

Similaire à File manager authentification(20)

démonstration code source site web ecole.docx par VincentBweka
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docx
VincentBweka16 vues
Application web php5 html5 css3 bootstrap par Bassem ABCHA
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA4.6K vues
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy... par Microsoft
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Microsoft852 vues
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy... par Microsoft
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Microsoft236 vues
Liason Sage crm avec Sage Multi Devis par Fred Canevet
Liason Sage crm avec Sage Multi DevisLiason Sage crm avec Sage Multi Devis
Liason Sage crm avec Sage Multi Devis
Fred Canevet2.2K vues
Tableau de bord Yammer sous SharePoint 2013 par Philippe Sfeir
Tableau de bord Yammer sous SharePoint 2013Tableau de bord Yammer sous SharePoint 2013
Tableau de bord Yammer sous SharePoint 2013
Philippe Sfeir874 vues
ASP.NET from Zero to Hero par Cellenza
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
Cellenza2.6K vues
PHP (Partie II) Par Mahdi Ben Alaya par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben AlayaPHP (Partie II) Par Mahdi Ben Alaya
PHP (Partie II) Par Mahdi Ben Alaya
Mahdi Ben Alaya3.6K vues
Guide pratique openssl sous debian par yahyaf10
Guide pratique openssl sous debianGuide pratique openssl sous debian
Guide pratique openssl sous debian
yahyaf104.6K vues
Concevoir, développer et sécuriser des micro-services avec Spring Boot par DNG Consulting
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
DNG Consulting2.7K vues

File manager authentification

  • 1. PHP5 / Mysql Création d'une authentification pour un site internet Session, base de données, php I. Présentation Objectifs : L'objectif de ce tutoriel est de créer une page d'authentification pour un site internet et de protéger certaines pages du site. Les identifiants et mots de passe seront stockés dans une base de données. Logiciels utilisés pour ces services : – Apache 2/PhP5 – Mysql-server – Phpmyadmin II. Création de la base de données L'objectif ici est de créer une base de données pour le site avec une table « users » qui stockera les identifiants et mots de passe des comptes utilisateurs. Pour cela, il faut se rendre sur l'interface de phpmyadmin sur le serveur. Http://ip_serveur/phpmyadmin. La première étape consiste à créer une base de donnée « MonSite » dans laquelle sera stocké les différentes tables liées au site dont la table « users ». Une fois cette base créée, il nous faut pour atteindre notre objectif, créer une table « users » qui aura 3 champs : l'id utilisateur, le login et le mot de passe.
  • 2. Nous avons besoin d'un champ de type Integer pour l'id de l'utilisateur avec l'AUTO INCREMENT et l'Inedx à PRIMARY, d'un champ login de type Varchar 100 (chaine de caractères) pour le login puis d'un champ password de type Varchar 100 pour stocker les mots de passes : Maintenant que nous avons créé notre base et note table users, il nous reste à créer un compte utilisateur du serveur Mysql pour que le script php puisse lire les informations de la base. Pour cela il faut retourner à la page d'accueil de phpmyadmin (petite mainson dans le menu de gauche) et cliquer sur Privilèges en haut. Il faut maintenant cliquer sur Ajouter un utilisateur : Nous allons saisir les informations du compte, dans l'exemple : login « access_site » et password « motdepasse » Puis cliquer sur Exécuter. Sur la nouvelle page dans la partie « Priviles spécifiques à une base de données » nous allons sélectionner la base « MonSite ».
  • 3. Puis enfin nous allons sélectionner SELECT, INSERT, UPDATE de DELETE Après avoir cliqué sur Exécuter, notre base de données est prête et nous avons un utilisateur pour s'y connecter et qui peut lire les informations contenues dans la base de notre site. III. Création de la partie PHP5 / HTML Ce dont nous avons besoin c'est d'un formulaire d'authentification, d'un système de vérification, d'un moyen de se connecter à la base de données, d'un formulaire d'ajout de compte et d'un moyen pour vérifier si l'utilisateur s'est authentifié avant d'afficher la page. Commençons par le début du commencement le formulaire d'authentification. Ce formulaire appellera le script auth.php Page : auth.html <html> <head><title>Authentification requise</title></head> <body> <center> <h2>Merci de vous authentifier</h2> <form action="auth.php"> <table border="0" width="70%"> <tr> <td><center>Nom d'utilisateur : </center></td> <td><center><input type="text" name="login"/><center></td> </tr> <tr> <td><center>Mot de passe : </center></td> <td><center><input type="password" name="password" /></center></td> </tr> </table> <input type="submit" value="Valider" /> </form> </center> </body> <html>
  • 4. Il nous faut aussi maintenant un formulaire pour créer les comptes utilisateurs (qui seront stockés dans la table « users »). Ce formulaire appellera le script d'ajout « add_user.php ». Page : add_user.php <html> <head><title>Création de compte utilisateur</title></head> <body> <center> <h2>Merci de saisir les identifiants du compte</h2><br /><br /> <form action="add_user.php"> <table border="0" width="30%"> <tr> <td><center>Nom d'utilisateur : </center></td> <td><center><input type="text" name="login"/><center></td> </tr> <tr> <td><center>Mot de passe : </center></td> <td><center><input type="password" name="password" /></center></td> </tr> </table><br /><br /> <input type="submit" value="Valider" /> </form> </center> </body> <html> Maintenant que la partie html est terminée il nous reste la partie php. Cette partie sera composée de 4 fichiers : – le fichier auth.php qui vérifiera les informations saisies par l'utilisateur – le fichier add_user.php qui permettra d'ajouter les nouveaux utilisateurs – un fichier fonction.php qui contiendra la fonction de connexion à la base de données et d'exécution des requètes sql. – Un fichier conf.site qui contiendra les informations de connexion à la base de données. Commençons par le fichier conf.site. Ce fichier doit contenir les information d'accès à la base de données (nom d'utilisateur, mot de passe, adresse ip du serveur, nom de la base de données). Fichier conf.site : <? $BDD_hote="localhost"; $BDD_nmDB="MonSite"; $BDD_user="acces_site"; $BDD_pass="motdepasse"; ?>
  • 5. Avant de nous occuper des scripts d'ajout de compte et d'authentification, il nous reste le fichier fonctions.php à créer qui contiendra les fonctions d'exécutions des requètes. Fichier fonctions.php <? // Fonction d'exécution des requètes SQL function sql($request) { global $bdd; if(strrchr($request, 'SELECT')) { $req = $bdd->query($request); } else { $bdd->exec($request); } if(!empty($req)) { while ($data = $req->fetch()) { $res[] = $data; } return $res; } else { return false; } } ?> Avant de créer le fichier auth.php pour gérer les authentification, nous allons créer le fichier add_user.php pour ajouter un premier utilisateur de notre site dans notre base de données afin de pouvoir par la suite tester la page d'authentification. Fichier add_user.php <? // Fichier add_user.php // On intègre les informations de connexion à la base de données ainsi que le fichier (ou librairie fonctions.php) include("conf.site"); include("fonctions.php"); // On intialise la connexion à la base de données $bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_nmDB, $BDD_user, $BDD_pass); // On récupère ce que l'utilisateur à saisi, si il n'a rien saisi (login ou mot de passe) on le renvoi sur la page de création de compte if(isset($_REQUEST['login']) && isset($_REQUEST['password'])) { // Le formulaire précédent a été bien rempli // On prépare la requète SQL pour enregistrer l'utilisateur $requete="INSERT INTO `MonSite`.`users` (`id`, `login`, `password`) VALUES (NULL, '". $_REQUEST['login']."', '".md5($_REQUEST['password'])."');"; // Ici md5 permet de crypter le mot de passe et de le stocker crypté dans la base de données // On exécute la requete grace à la fonction sql présente dans le fichier fonctions.php sql($requete); // On prévient que le compte à bien été créé echo "Compte ajouté a la base";
  • 6. // On pourrait aussi renvoyer vers une page de confirmation par // header("location : confirmation.html"); } else { // Le formulaire n'est pas complet // On renvoit vers la page précédente header("location : add_user.html"); } ?> Pour tester notre ajout de compte il suffit d'aller dans un navigateur à l'adresse http://ipduserveur/monsite/add_user.html, d'ajouter un compte puis de vérifier grace à phpmyadmin si nous avons bien un nouvel utilisateur dans notre table users. Maintenant que nous avons pu ajouter un compte à notre base « users », nous allons pouvoir créer notre fichier auth.php qui se chargera de comparer les informations saisies par l'utilisateur et les informations saisies dans la base de données. Fichier auth.php <? //On prépare l'utilisation des variables de fonctions (variable qui sont stockées sur le serveur pour chaque session ouverte) session_start(); // Fichier auth.php // On intègre les informations de connexion à la base de données ainsi que le fichier (ou librairie fonctions.php) include("conf.site"); include("fonctions.php"); // On intialise la connexion à la base de données $bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_nmDB, $BDD_user, $BDD_pass); // On récupère ce que l'utilisateur à saisi, si il n'a rien saisi (login ou mot de passe) on le renvoi sur la page de création de compte if(isset($_REQUEST['login']) && isset($_REQUEST['password'])) { // Si l'utilisateur à rempli tous les champs on vérifie ce qu'il à saisit // En recherchant dans la base de donner, un login et un mot de passe crypté correspondant à ce qu'il à saisi. // Si on a pas de réponse, alors il y a une erreur d'authentification // Sinon l'utilisateur a réussi à s'authentifier $requete = "SELECT * FROM users WHERE `login`='".$_REQUEST['login']."' AND `password`='".md5($_REQUEST['password'])."'"; if(sql($requete)) { // Nous avons bien le bon utilisateur // Nous créons la variable de session $_SESSION['auth']="AUTH : OK"; echo "Vous êtes authentifié"; } else { // Nous n'avons pas les bonnes informations // On renvoi vers la page d'authentification header("location: auth.html"); } } else { // Formulaire incomplet // On renvoit vers la page précédente header("location: auth.html"); } ?>
  • 7. Pour tester notre authentification, il nous suffit d'aller sut l'adresse http://ipduserveur/monsite/auth.html, puis d'utiliser les informations d'authentifications de l'utilisateur que nous avons créé à l'aide de notre formulaire précédemment. Enfin pour protéger une page d'un site il nous suffira de vérifier en haut de chaque page si nous avons une session ouverte ou pas pour le site à l'aide du code suivant : <? session_start(); if(!isset($_SESSION['auth'])) { header("location:auth.html"); } ?> Ce code en haut de chaque page vérifie si nous avons une session web ouverte sur le serveur avec notre variable de session, sinon il nous renvoit directement sur la page d'authentification. Il faut rajouter ce morceau de code sur la page add_user.html ainsi que tout en haut de add_user.php. Guillaume Evain – 2011 contact@evain.info http://www.evain.info +33 / 0 - 6-21-53-56-81