[ 1 129 573 ]
[ 38.107.179.240 ]
PHP/MySQL - Créer une session membreDans cet exemple nous allons voir comment créer une session, afin de protéger certaines pages en y incluant un accès par mot de passe. De cette manière vous allez pouvoir mettre une section membre à votre site. Création de la table des membresPour commencer nous allons créer une table MySQL qui va nous permettre de stocker les membres (Voir "Créer une Table avec une requête SQL"). CREATE TABLE membres ( id int(11) NOT NULL auto_increment, name varchar(25) NOT NULL, pass varchar(32) NOT NULL, PRIMARY KEY (id) ); Formulaire d'identificationCréer un formulaire d'identification (name et pass), à insérer dans votre page web. <form action="/session.php" method="post"> <input name="name" type="text" size="12" value="" /> Name<br /> <input name="pass" type="password" size="12" value="" /> Password<br /> <input name="submit" type="submit" value="Connexion" /> </form> Script de contrôle de sessionUne fois le formulaire d'identification remplit et envoyé par la méthode POST, nous récupérons les variables des champs inputs. Créer un fichier nommé "session.php" à la racine de votre ftp. Attention ! N'oubliez pas de changer les variables suivantes :
localhost, root, mot_de_pass, base
<?php
//initialisation de la session
session_start();
//si les champs ont été remplis
if (!$_POST['name']=="" && !$_POST['pass']=="") {
//on récupère les valeurs des champs
$name = $_POST['name'];
$pass = md5($_POST['pass']);
//connexion à la base de donnée
$connect = mysql_connect('localhost', 'root', 'mot_de_pass');
mysql_select_db('base', $connect);
$sql = mysql_query("SELECT pass FROM membres WHERE name='$name'");
$row = mysql_fetch_array($sql);
$pass_sql = $row['pass'];
//on teste si le mot de passe correspond à la base de donnée
if ($pass_sql == $pass) {
//l'utilisateur est valide
//on crée la variable de session avec son nom
$_SESSION['name'] = $name;
$msg = 'Vous êtes correctement indentifié';}
else {
//sinon on avertit l'utilisateur
$msg = 'Votre nom ou votre mot de passe est incorrect<br />';
$msg .= '<a href="/index.php">Retour</a>';}
//fermeture de la connexion
mysql_close();}
else {
//un des champs n'est pas rempli
$msg = 'Votre nom et/ou votre mot de passe n\'est pas renseigné<br />';
$msg .= '<a href="/index.php">Retour</a>';}
//on affiche le resultat
echo $msg;
?>
Script d'authentificationOn vérifie si une session est bien crée et validée. Dans le cas contraire on redirige l'utilisateur vers la page qui accueil le formulaire d'identification. Créer un fichier nommé "auth.php" à la racine de votre ftp.
<?php
//on vérifie que l'utilisateur est identifé
if (!isset($_SESSION['name'])) {
//si la variable de session n'existe pas
//on redirige l'utilisateur vers le formulaire d'identification
header('Location: ./index.php');
//on arrête l'exécution
exit();}
?>
Mise en place de la protectionPour protéger une page ou des pages de votre site, il vous suffira de mettre ce petit bout de code au début de chaque page.
require("./auth.php");
[7] commentaires - Voir/Editer |