Formulaire accès espace membre

  Information

Formulaire pour accéder à un accès membre, parfait pour un espace membre, un intranet...

Le login et le mot de passe sont stockés dans une table "membres", si le login et mot de passe sont corrects, le login est placé dans une session pour pouvoir controler l'accés de toute vos pages à protéger.

  code source classé dans  Formulaires

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
 44    
 45    
 46    
 47    
 48    
 49    
 50    
 51    
 52    
 53    
 54    
 55    
 56    
 57    
 58    
 59    
 60    
 61    
 62    
 63    
 64    
 65    
 66    
 67    
 68    
 69    
 70    
 71    
 72    
 73    
 74    
 75    
 76    
 77    
 78    
 79    
 80    
 81    
 82    
 83    
 84    
 85    
 86    
 87    
 88    
 89    
 90    
 91    
 92    
 93    
 94    
 95    
 96    
 97    
 98    
 99    
 100    
 101    
 102    
 103    
 104    
 105    
 106    
 107    
 108    
 109    
 110    
 111    
 112    
 113    
 114    
 115    
 116    
 117    
 118    
 119    
 120    
 121    
 122    
 123    
 124    
 125    
 126    
 127    
 128    
 129    
 130    
 131    
 132    
 133    
 134    
 135    
 136    
 137    
 138    
 139    
 140    
 141    
 142    
 143    
 144    
 145    
 146    
 147    
 148    
 149    
 150    
                               
<?php
/*---------------------------------------------------------------*/
/*
    Titre : Formulaire accès espace membre                                                                               
                                                                                                                          
    URL   : https://phpsources.net/code_s.php?id=3
    Date édition     : 27 Aout 2004                                                                                       
    Date mise à jour : 19 Sept 2019                                                                                      
    Rapport de la maj:                                                                                                    
    - refactoring du code en PHP 7                                                                                        
    - fonctionnement du code vérifié                                                                                    
*/
/*---------------------------------------------------------------*/?>
    ************* Table membres ***************
    *****************************************


    CREATE TABLE membres (
      id int(10) NOT NULL auto_increment,
      pass varchar(60) NOT NULL default '',
      login varchar(120) NOT NULL default '',
      PRIMARY KEY  (id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 


    *****************************************
    *****************************************


    <?php
    // demarre une session
    session_start();

    // Connection au serveur mySQL

    $db_server 'localhost'// Adresse du serveur MySQL
    $db_name '';            // Nom de la base de données
    $db_user_login 'root';  // Nom de l'utilisateur
    $db_user_pass '';       // Mot de passe de l'utilisateur

    // Ouvre une connexion au serveur MySQL
    $conn mysqli_connect($db_server,$db_user_login$db_user_pass$db_name);

    ?>

    <html>
    <head>
    <title>Titre</title>
    </head>
    <body>
    <?php

    // variables du formulaire
    $action isset($_POST['action']) ? $_POST['action'] : '';  
    $login isset($_POST['login']) ? $_POST['login'] : '';
    $pass isset($_POST['pass']) ? $_POST['pass'] : '';


    // si le login et pass on été au préalable cryptés 
    // (en md5 dans l'exemple) dans votre base
    // vous devez enlever les commentaires sur les 2 lignes suivante

    // $login  = md5($_POST['login']);
    // $pass   = md5($_POST['pass']);


    // Si aucune action, le formulaire est afficher
    if ($action !=) {

    echo 'Veuillez entrer votre Login et Mot de Passe:<br />';
    echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">';
    echo '<input type="hidden" name="action" value="1">';
    echo 'Login: <input type="password" name="login"><br />';
    echo 'Passe: <input type="password" name="pass"><br />';
    echo '<input type="submit" value="Connexion">';
    echo '</form>';
                      }

    // Sinon
    if ($action == 1) {

    $q $conn->query("SELECT *
                      FROM membres 
                      WHERE login='$login
                      AND pass='$pass'");
    $n $q->num_rows;

        if ($n == AND $login != "" AND $pass != "")
           {
           // Le login est placé dans la session
           $_SESSION['login_session'] = $login;
           // redirection

            // ATTENTION A BIEN METTRE LA PAGE DE REDIRECTION ICI

           header("location: votre_page_espace_membre.php");
           }

    // Si le login ou le mot de passe sont incorrect
    // affiche de nouveau le formulaire

             else{

    echo 'Veuillez entrer votre Login et Mot de Passe:<br />';
    echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">';
    echo '<input type="hidden" name="action" value="1">';
    echo 'Login: <input type="password" name="login"><br />';
    echo 'Passe: <input type="password" name="pass"><br />';
    echo '<input type="submit" value="Connexion">';
    echo '</form>';

    die('<font color="red">Informations incorrectes!');
               }
             }
    ?>
    </body>
    </html>



      **************************************************
      vous pouvez maintenant utiliser la variable de
      session sur les pages que vous désirez protéger.
      **************************************************

    //  1ère METHODE

    <?php
    session_start();
    // Si la variable $login_session n'est pas déclaré
    if(!isset($_SESSION["login_session"])) {
    echo 'Vous n\'avez pas accés à cette page!';
           }
    //sinon
     else {
     [votre code]
          }
    ?>


    //  2ème MÉTHODE


    <?php
    session_start();
    if(!isset($_SESSION['login_session']))
        die('Accès interdit!');
    ?>

          Fonctions du code - Doc officielle PHP

   php.net   Description Versions PHP OUTIL
   die Alias de la fonction exit() PHP 4, PHP 5, PHP 7, PHP 8
   echo Affiche une chaîne de caractères PHP 4, PHP 5, PHP 7, PHP 8
   header Envoie un en-tête HTTP PHP 4, PHP 5, PHP 7, PHP 8
   isset Détermine si une variable est affectée PHP 4, PHP 5, PHP 7, PHP 8
   mysqli_connect Ouvre une connexion à un serveur MySQL PHP 5, PHP 7, PHP 8
   session_start Initialise une session PHP 4, PHP 5, PHP 7, PHP 8

   Dites merci aux auteurs pour leurs travail, ça ne coûte rien et ça fait toujours plaisir wink

[17]

  • avatar

    Invité

    18 Jan 2012 à 15:11

    Merci beaucoup pour ce tutoriel, il m'a vraiment aider

  • avatar

    Invité

    15 Déc 2009 à 12:53

    c'est de la choucroute ton script niveau sécurité !!!!  Il suffit de faire soit même une variable de session et on passe partout !

  • avatar

    Invité

    31 Oct 2009 à 03:24

    Problème sur les 2 <?php print $_SERVER['REQUEST_URI'];?> déjà balisés

  • avatar

    KOogar

    15 Fév 2009 à 01:35

    Merchi, j'ai fais la modification

  • avatar

    Invité

    14 Fév 2009 à 19:25

    problème à la ligne 80 et 114 (echo '

  • avatar

    Plor

    07 Oct 2008 à 17:48

    Yeah comment débuter en beauté

  • avatar

    R@f

    26 Avril 2007 à 09:13

    Koogar, oui, par exemple le renvoi de pass...

    Pour le goto et les break, ils sont là pour ça ;-)
    Par contre, je veux qd meme pas que certaines de mes données soient lisibles par le webmaster...

    @++

    R@f

  • avatar

    100marques

    25 Avril 2007 à 17:36

    Bon ; je voulais pas intervenir parceque je sens que je vais à l'encontre de clichés bien établis, mais tant pis :
    Je pense que l'intérêt du cryptage est de protéger la base au cas ou une personne malveillante y aurait accès EN LECTURE ( si c'est en écriture, de toute façon c'est mort, il y aura des dégats ).
    Ca laisse supposer que le developpeur a laissé des failles de sécurité.
    ca peut arriver à tout le monde.
    Personnellement je pars du principe que si un petit malin essaye de pirater ma base en utilisant tel ou tel article glané sur le net et une faille de sécurité, il n'investira pas une semaine de boulot pour décrypter la petite formule de cryptage réversible ( si mes souvenirs sont bons, seul le hashage n'est pas réversible ? ).
    Ca me laisse plus de confort pour chouchouter mes utilisateurs.
    A noter : dans la version 1 de mon site j'utilisai le cryptage MD5 ( ben oui, c'est tellement conseillé ) et en refaisant le site dans son intégralité je l'ai enlevé et je m'en félicite.
    Mais je sais que je vais choquer ( il m'arrive de temps en temps d'utiliser un break ( presque un goto quelque part ) pour sortir de certains traitements ; si vous voulez vraiment me taper dessus vous pourrez faire d'une pierre 2 coups ! ;o) )
    Amicalement

  • avatar

    KOogar

    24 Avril 2007 à 21:50


    Et tu le sais comment si le site a cryter les passes ? Aucun moyen je pense à part si sur le site, aprés avoir cliquer sur "perdu votre mot de passe?", le webmaster renvoi le meme, c'est clair qu'il a en fait pas cryter grand chose. C'est pour que je disais que les fonctions de cryptage à double sens, autant ne pas les mettre.

    Sinon en générale ya rien de marquer sur un site si ola base est crypter ou pas. Peut-etre par un petit iconne mais c'est rare. Maintenant je suis du meme avis que 100marques, ne pas trop vouloir s'emmerder quand on débute et on a peu de trafic donc peu de membre, je comprend et je pense que c'est dans ce sens qu'il en a parler ;)

  • avatar

    R@f

    24 Avril 2007 à 20:36

    Mmh: je trouve que ne pas crypter les pass est un signe de manque de sérieux: perso, moi un site où les pass sont pas cryptés (donc où le webmaster a accès à mes données), j'essaye de pas y retourner...

    @++

    R@f

  • avatar

    KOogar

    23 Avril 2007 à 01:49

    La seule manière que je connaisse de cryter correctement est, un cryptage par injonction, c'est à dire dans un seul sens. MD5 fait cela merveilleusement bien et la fonction est simple d'utilisation.
    Vouloir faire des fonctions qui cryte et décrypte posent 2 problemes, c'est crakable et c'est beaucoup plus gourmand que MD5 ou une autre fonction par injontion.
    Il n'y a pas besoin de devoir faire un "site militaire" pour avoir a protéger les Mots de Passes et Numéro de CB des Internautes. C'est un peu n'importe quoi comme argument.
    Dans l'autre sens, je comprend trés bien que de devoir renvoyer un nouveau Mot de Passe à l'internaute est plus compliquer, surtout sur des sites ou les internautes n'ont pas l'habitude de ce genre de manipulation. Dans ce cas la, autant ne rien crypter du tout, la plupart de ces fonctions à double sens génèrent des erreurs, suffit de bien "vérouiller" ses scripts PHP à toute forme de hacking extérieur.

  • avatar

    100marques

    21 Avril 2007 à 23:22

    Pour ma part j'en suis revenu du cryptage MD5.
    A moins d'avoir un site militaire, il faut pas trop de prendre le chou avec ça.
    Un petit cryptage réversible permet de renvoyer le mot de passe à l'utiliateur sans traumatisme.
    La maintenance est également facilitée.
    Bref ; que des avantages

  • avatar

    C-bolo

    23 Fév 2005 à 01:02

    Quand j'ai déménagé le site l'année dernière, j'avais définitivement perdu 1 fichier de download. Merci de m'avoir retrouvé ce rebelle !! J'ai mis la dernière version du script en ligne.

    Trés bonne continuation
    KOogar

  • avatar

    R@f

    05 Sept 2004 à 22:15

    La variable $resultat est tout simplement le resultat de la requête et elle est déclaré au bon endroit.

  • avatar

    Laurent

    05 Sept 2004 à 18:08

    je n'arrive pas a comprendre ce qu'est $resultat.
    cette variable ne devrait elle pas etre déclarée d'abord?
    help!!
    merci..

  • avatar

    R@f

    05 Sept 2004 à 09:14

    Koogar, j'aurais besoin d'un peu d'explications j'y arrive pas =)

  • avatar

    R@f

    05 Sept 2004 à 08:14

    C'est du MySql pas du Java Script !!!


 Autres snippets qui pourraient vous intéressez

Afficher les informations des headers

Compatibilité : PHP 5, PHP 7

La fonction getallheaders() le fait en exécutant PHP en tant que module Apache. Affiche toutes les en-têtes de requête.

Formulaire de date en HTML avec PHP

Compatibilité : PHP 5, PHP 7

Affiche 3 menus déroulants HTMH représentant une date complète via PHP, avec l'année, le mois et le jour.

Formulaire JS + Ajax + PHP + e-MAIL

Compatibilité : PHP 5, PHP 7

Formulaires en Ajax et PHP, pour thème responsive Bootstrap. L'envoi du mail s'effectue sans rechargement de la page.

Upload basique de fichiers avec formulaire HTML

Compatibilité : PHP 5, PHP 7

Upload de fichiers avec formulaire HTML. Si le fichier n'est pas Upload, le script retourne un message d’erreur.

Upload Multi - Formulaire - Classe PHP

Compatibilité : PHP 5, PHP 7

Cette classe permet d'uploader un ou plusieurs fichiers dans le répertoire de votre choix. Permet aussi de choisir le nombre d'upload.

Présentation de PHP

PHP débutant et initié 50 Tutoriel

Présentation de MySQL

  27 Aout 2004

Information sur les mises à jour

Dernière mise à jour :

    19 Sept 2019
    refactoring du code en PHP 7
    fonctionnement du code vérifié

69 172 Vues
Compatibilité
PHP 5, 7 et 8+