Actualites | Forum |Archives
Le magazine des décideurs et webmasters qui gagnent !
Inscription | Livre d'or | Plan du site | 15 visiteurs actifs
   
A la Une
Actualité
Dossiers
Communiqués
Coin Technique
Agenda des salons
Emploi
Echange de liens

Archives
Sélection
Expérience qui parle
Internet quotidien
Tous les dossiers

Forum
Forum SAM-MAG

Guides
Check-list de la promotion des sites
Promouvoir et référencer les sites web

Contact
Nous contacter
Newsletter
La protection des données personnelles


 
 Contrôler l'accès de pages d'un site web (III)
Dossier "SAM l'Informaticien" du 22/01 au 04/02 2001 par Julie Meloni

our terminer nous allons confronter la saisie de l'internaute à la liste des utilisateurs stockée dans une base de données. Ce qui est le cas le plus fréquent dès qu'il s'agit de gérer une liste qui peut devenir conséquente, la gestion par formulaire en est facilitée.

(Traduit de l'article original www.zend.com/zend/tut/authentication.php)

Validation à partir d'une base de données

Ce dernier exemple va nous montrer comment comparer les valeurs de code utilistaeur et mot de passe obtenues par la boîte de dialogue d'authentificationavec la liste de ces éléments stockés dans une table de base de données. Notre exemple utilise MySQL et les fonctions de connection à MySQL de PHP. Cependant, vous pouvez utiliser n'importe quelle base de données dont les interfaces sont connues de PHP, en fonction de votre environnement.

Voilà par exemple l'allure de notre table nommée "utilisateurs" :

nom code password
Joe Smith joe ai890d
Jane Smith jane 29hj0jk
Mary Smith mary fsSS92
Bob Smith bob 2NNg8ed
Dilbert dilbert a76zFs

Voilà la requête SQL qui va chercher la ligne de la table qui correspond normalement à la saisie:
SELECT * FROM utilisateurs WHERE code='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'

Un retour positif de la la requête indique qu'il y a une ligen en coïncidence avec la saisie.

Explication du code source

  • Si des valeurs ont été assignées à $PHP_AUTH_USER et à $PHP_AUTH_PW, on se connecte à la base et on exécute la requête.
  • Si la requête renvoie au moins une ligne, la correspondance existe et on positionne $auth à 'true' pour indiquer que l'utilisateur est bien authentifié. On affiche un message de succès.
  • Si l'utilisateur n'a pas été authentifié, le drapeau $auth reste à 'false' et le navigateur repropose la boîte de dialogue d'authntification.

<?php

$auth 
false// Assume user is not authenticated

if (isset( $PHP_AUTH_USER ) && isset($PHP_AUTH_PW)) {

    
// Connect to MySQL

    
mysql_connect'hostname''username''password' )
        or die ( 
'Unable to connect to server.' );

    
// Select database on MySQL server

    
mysql_select_db'your_db' )
        or die ( 
'Unable to select database.' );

    
// Formulate the query

    
$sql "SELECT * FROM utilisateurs WHERE
            code = '$PHP_AUTH_USER' AND
            password = '$PHP_AUTH_PW'"
;

    
// Execute the query and put results in $result

    
$result mysql_query$sql )
        or die ( 
'Unable to execute query.' );

    
// Get number of rows in $result.

    
$num mysql_numrows$result );

    if ( 
$num != ) {

        
// A matching row was found - the user is authenticated.

        
$auth true;

    }

}

if ( ! 
$auth ) {

    
header'WWW-Authenticate: Basic realm="Private"' );
    
header'HTTP/1.0 401 Unauthorized' );
    echo 
'Authorization Required.';
    exit;

} else {

    echo 
'<P>You are authorized!</P>';
}

?>

Ps : Vous pouvez télécharger le source ci-dessus, changez l'extension en fonction de votre environnement d'exécution.



<< Lire la 2ème partie

Julie Meloni

Tech. Director, i2i Interactive
www.thickbook.com

Traduit et adapté par Daniel Lucazeau
@jornet.com
Chef de projet Internet

Tous droits réservés - Reproduction même partielle interdite sans autorisation préalable

 
 
Google
 
Web www.sam-mag.com
 

Copyright © ACORUS 2004. All Rights Reserved

- Sam-Mag.com Referencement-Sur-mesure - Referencer-Site-Web.com
Visibilite-Internationale.com - Referencement-Immobilier.net