Pseudo Mot de passe
fleche Inscription
fleche Mot de passe oublié ?
Les dernières pages de Cours et Dossiers ajoutées
Informations Générales
Chargement en cours...
Nombre de Visites fleche [ 1 129 573 ]
Votre IP fleche [ 38.107.179.240 ]
Vous êtes ici : Home Page Dossiers Trucs et astuces (PHP) Creer une session membre
Imprimer le document Version Imprimable

Informations Générales

[436] Posts sur le forum
[514] Membres inscrits
Il y a en ligne :
arrow 0 Membre
arrow 1 Invité
fled Membre en ligne:
Aucun

Partenariat

Partenariat Vous pouvez aider ce site à évoluer, en contribuant à son développement. Proposez vos idées de cours et/ou dossiers.
Rendez-vous dans « Partenariat » pour en savoir plus.


Publicité


Prestataire

N°1 de l'hébergement, location de serveurs, nom de domaines et téléphonie.
(OVH est recommandé par Webelix.net)

www.

Nos Partenaires

PHP/MySQL - Créer une session membre

Auteur : 3L!X | Créé le : 07/10/2006 à 19H10

Dans 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 membres

Pour 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").
Voici la table :

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'identification

Créer un formulaire d'identification (name et pass), à insérer dans votre page web.
Exemple dans votre page "index.php".

<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 session

Une 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
Et d'enregistrer dans la base de donnée (membres), les mots de passe crypté avec md5
(voir "Génerateur de Mot de Passe crypté avec md5").

<?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'authentification

On 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 protection

Pour 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/EditerAjout commentaire

Haut de page