Vous êtes ici Codes PHP et MySQL > Formulaires > Formulaire accés espace membre

 

Formulaire accés espace membre

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 nommée ici "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.
 
KOogar
Site de l'auteur voir
[65] sources en PHP voir
Code vu 48874 fois
Enregistré le 27 Aout 2004
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Formulaire accés espace membre
  • Partage ce code sur Facebook
 
 
 
 

Code Source


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.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Formulaire accés espace membre                            */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts3-PHP.htm                */
/* Auteur         : KOogar                                                    */
/* Date édition   : 27 Aout 2004                                              */
/* Website auteur : http://www.koogar.fr                                      */
/*                                                                            */
/******************************************************************************/
?>
************* 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)
) TYPE=MyISAM; 


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


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

// Connection au serveur mySQL

$sql_serveur "localhost"// Serveur mySQL
$sql_base "nom_base"// Base de donnees mySQL
$sql_login "root"// Login de connection a mySQL
$sql_password ""// Mot de passe pour mySQL

@mysql_connect($sql_serveur,$sql_login,$sql_password) or die(
"Connection interrompue");
@mysql_select_db($sql_base);

?>

<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 mysql_query("SELECT * 
                  FROM membres 
                  WHERE login='$login' 
                  AND pass='$pass'");
$n mysql_num_rows($q);

    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 desirez 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 METHODE


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

 

Fonctions du code

: Initialise une session - (PHP 4, PHP 5)
: Alias de la fonction exit() - (PHP 4, PHP 5)
: Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Détermine si une variable est affectée - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL...
: Envoie un en-tête HTTP - (PHP 4, PHP 5)
Commentaires
C'et du MySql pas du Java Script !!!
 
Koogar, j'aurais besoin d'un peu d'explications j'y arrive pas =)
 
je n'arrive pas a comprendre ce qu'est $resultat.
cette variable ne devrait elle pas etre déclarée d'abord?
help!!
merci..
 
La variable $resultat est tout simplement le resultat de la requête et elle est déclaré au bon endroit.
 
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
 
Je ne parviens pas à changer la version du script sur http://www.phpsources.org/
La dernière version 0.2.3 à télécharger ici http://gallery.sanybee.com/
 
j'ai testé mais y a pas de template.. j'ai été sur leur forum ca a l'air super compliquer pour modifier un ptit truc.

Je pense que ca va se developper mais faudra attendre encore.

neutral
 
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
 
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.
 
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
 

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 ;)
 
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
 
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
 
Yeah comment débuter en beauté
 
problème à la ligne 80 et 114 (echo '
 
Merchi, j'ai fais la modification
 
Problème sur les 2 <?php print $_SERVER['REQUEST_URI'];?> déjà balisés
 
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 !
 
Merci beaucoup pour ce tutoriel, il m'a vraiment aider
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Formulaires

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité