exemple simpliste de session et base de données

Nouvelle base de données

Membres

Le propriétaire sera « etudiant » avec le mot de passe « etudiant »

Table : utilisateurs

CREATE TABLE utilisateurs (
  login varchar(20) NOT NULL,
  pwd char(41) NOT NULL COMMENT 'utilise password',
  dateInscri date NOT NULL,
  PRIMARY KEY (`login`)
)  COMMENT='liste des membres';
+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| login      | varchar(20) | NO   | PRI | NULL    |       | 
| pwd        | char(41)    | NO   |     | NULL    |       | 
| dateInscri | date        | NO   |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+

Ajouter etudiant :

INSERT INTO utilisateurs 
VALUES ('etudiant', PASSWORD( 'etudiant' ) , CURRENT_DATE( ));

ce qui donne :

etudiant *FC14C49B39E5389CF7EE41DB886C4DB3BBBE8E7D 2014-06-04

 Connexion à l’aide d’un formulaire

<form method="post" action="login.php">
    	<fieldset>
    <label> login</label><input name="login"></br>
    <label>mot de passe </label><input type="password" name="pwd">
        </fieldset>
        <input type="submit" value="connexion">
</form>

Config.php

<?php
$base="membres";
$user="etudiant";
$motDePasse="etudiant";
?>

login.php

<?php
// on teste si nos variables sont définies
if (isset($_POST['login']) && isset($_POST['pwd'])) {
    $login=$_POST['login'];$pwd=$_POST['pwd'];
    //on ajoute les données de connexion à la bas de donnée
require_once("config.php"); 
$pdo = new PDO("mysql:host=localhost;dbname=$base", 
						$user,
						$motDePasse);
// connexion initialisée on vérifie qu'il y a quelqu'un count->1
$sql = 
"SELECT count(*) as nombre FROM utilisateurs where login='$login' and pwd=password('$pwd') ";
$req = $pdo->query($sql);
$tableau=$req->fetch();//récuperer le contenu;
$n=$tableau['nombre'];// nombre d'utilisateurs trouvés (0 ou 1)
// $n doit valoir 1 login est unique

/*on vérifie les informations du formulaire, à savoir si le pseudo saisi 
est bien un pseudo autorisé, de même pour le mot de passe*/
if ($n==1) {
// dans ce cas, tout est ok, on peut démarrer notre session
// on  démarre une session
session_start ();
$sql = "SELECT * FROM utilisateurs where login='$login' and pwd=password('$pwd') ";
$req = $pdo->query($sql);
$tableau=$req->fetch();//récuperer le contenu;

/* on enregistre le login de notre visiteur comme variable de session ($login )
 (notez bien que l'on utilise pas le $ pour enregistrer ces variables)*/
$_SESSION['login'] = $login;
$_SESSION['date']=$tableau['dateInscri'];//date d'inscription

// on redirige notre visiteur vers une page de notre section membre
header ('location:membres.php');
}
else {
// Le visiteur n'a pas été reconnu comme étant membre de notre site. 
header('location:connexion.html');
}
}
else {//formulaire incomplet
header('location:connexion.html');
 }
?>

membres.php

<?php session_start ();
if(isset($_SESSION['login'])){
//tout le html est conditionné par le test
?>

<!DOCTYPE HTML >
<html>
<head>
	<title>membres</title>
</head>

<body>
	<h1>Membres</h1>

<?php
echo "<b>".$_SESSION['login']." </b> membre depuis le  " 
.date("d/m/Y", strtotime($_SESSION['date']));//formater la date
?>

</body>
</html>
<?php
}
// retour à la connexion pour les inconnus
else {header('location:connexion.html');}

?>