Codage d'une page de login
Exemple de code (login.php) :
Cette page comporte à la fois le code de saisie du mot de passe, et de vérification. Au premier affichae de la page l'utilisateur saisi ses identifiant. En validant la saisie, la page est rappelée et le code est vérifiant, ouvrant ou nom la session.
<?php
session_name('masession');
session_start(); // Démarrage de la session
// Mise en place des include
include('config/config.php'); // Paramètres de la Base de données (voir ci-dessous)
include('includes/fonctions.php'); // Inclure si besoin une page de fonctions de traitement (chaines, date, etc...)
// Vérification des variables de session (après réaffichage) : les variables $POST['login'] et $_POST['pass'] sont testées
if(isset($_POST['login'], $_POST['pass'])) // Si Login et Pass ont été saisies (donc la bontonr Valider a été actionné)
{
$login=addslashes(strtolower($_POST['login'])); // Créer la variable $login en minuscules et éviter les bugs
$pass=md5($_POST['pass']); // Créer la variable $pass cryptée : MD5 est un type de cryptage
// Test du mot de passe
mysql_connect($sql_name, $sql_login, $sql_pass) or die(mysql_error()); // Connexion à la BDD
mysql_select_db($sql_db);
// Chercher toutes les données correspondant au champ de login saisi
$reponse= mysql_query("SELECT * FROM utilisateurs WHERE login_user='$login'");
$donnees = mysql_fetch_array($reponse);
// Vérifier la validité du mot de passe
if (($donnees['mdp_user']==$pass) AND ($donnees['login_user']==$login) AND !empty($pass) AND !empty($login))
{ //les identifiants sont corrects on créé la session, on complète les variables de session et on redirige vers page2.php
$_SESSION['login_user']=$login;
$_SESSION['id_user']=$donnees['id_user'];
header("Location: page2.php"); // Redirection
mysql_close(); //on peut fermer la base
}
//les identifiants sont mauvais. On affiche une page d'erreur (non présentée ici)
elseif ($donnees['login_user']!=$login) {erreur("login");} // Ce nom d'utilisateur n'existe pas
elseif ($donnees['mdp_user']!=$pass) {erreur("pass");} // Le mot de passe entré est incorrect
elseif (empty($pass) OR empty($login)) {erreur("vide");} // Tous les champs n'ont pas été remplis
else
{
erreur("login"); // L'accès est interdit : page incorrect.php avec l'attribut login
}
}
else // Si le Login et Pass ne sont pas envoyés, afficher le formulaire de connexion
{
?>
<!-- Ce code est du HTML et correspond au formulaire de saisie -->
<html>
<head>
<title>Se connecter<?php echo $titre_page; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="config/masession.css" rel="stylesheet" type="text/css" media="screen" /><!--Appel de la feuille de style -->
</head>
<body>
<div id="container">
<!-- Haut et menu de la page -->
<?php include('pa_header.php'); // appel de l'entête (logo bannière + texte)
?>
<div id="content" align="center"><br />
<br />
<!-- Bloc du login -->
<div id="contentBloc">
<div id="jaune"> <img class="imageBloc" alt="" src="images/connexion.gif" />
//formulaire de saisie : login mot de passe et bouton VALIDER
<form action="login.php" method="post"><!-- on renvoie vers la même page -->
Login<br />
<input name="login" type="text" value="" maxlength="10" />
<br />
Mot de passe<br />
<input name="pass" type="password" value="" maxlength="10" />
<br />
<br />
<input type="submit" value="VALIDER" />
</form>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
}
?>
Les pages secondaires :
Configuration de la base de données : config.php
<?php
$titre_page=" - Lycée Théodore DECK "; //variable pour le titre
$sql_name="localhost"; //variable identifiant le nom de l'hôte
$sql_login="root"; //login d'accès à la BD
$sql_pass=""; //mot de passe (ne pas laisser vide en général
$sql_db="panaf"; //nom de la base de données
?>
Précautions de sécurité
Si un site nécessite une identification il est indispensable de vérifier, pour cahque page si l'utilisateur est en droit de visualiser la page, donc qu'il est identifié.
C'est la raison pour laquelle, les variables de sessions sont initialisées.
Exemple de vérification : (début de code de page2.php)
<?php
session_name('masession');
session_start();
// Insertion des pages annexes
include('config/config.php'); // Paramètres de la Base de données
include('includes/fonctions.php'); // Les fonctions
// Vérifie la validité de la session et renvoie les erreurs
if(!isset($_SESSION['login_user'])) {header("Location: 404.php");} // Session incorrecte, on quitte cette page
else // Session correcte : définition des variables
{
$sid_user=$_SESSION['id_user'];
}
?>
<!-- suite du code de la page -->