Accès au manager - réservé aux membres

Navigation

Bouts de Codes PHP

Formulaire accés espace membre

Informations sur le code source PHP

Ecrit par :  KOogar
Autres codes en PHP de l'auteur : [51] sources Voir
Date d'enregistrement du code le 27 Aout 2004 - Vu 28862 fois
Code source zippé: Télécharger le fichier ZIP
Impression: Imprimer le code
Ajouter la page à vos favoris

Description du code source

Informations sur le code source

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.

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
.161
.162
 

<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Formulaire accés espace membre                            */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts3-PHP.htm                */
/* Auteur         : KOogar                                                    */
/* Date édition   : 27 Aout 2004                                              */
/*                                                                            */
/******************************************************************************/
?>
************* 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="<?php print $_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="<?php print $_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 source

Fonctions php / mysql PHP

  • session_start : Initialise une session - (PHP 4, PHP 5)
  • die : Alias de la fonction exit() - (PHP 4, PHP 5)
  • mysql_connect : Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • mysql_select_db : Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • isset : Détermine si une variable est affectée - (PHP 4, PHP 5)
  • echo : Affiche une chaîne de caractères - (PHP 4, PHP 5)
  • mysql_query : Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • mysql_num_rows : Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • header : Envoie un en-tête HTTP - (PHP 4, PHP 5)

Commentaires [14]

R@f
le 05/09/2004 à 08:14:00
Hello!
Je ne vois pas la fonction md5, dis moi pas que les pass sont stockés en clair dans la base, ;-)

@++

R@f
R@f
le 05/09/2004 à 09:14:00
Heu.. Un deuxième truc: Si tu prog avec les erreurs à E_ALL: $_SESSION['session'] == '' va générer une notice...

Mieux vaut tester avec isset et/ou empty

@++

R@f
Laurent
le 05/09/2004 à 18:08:00
Hello Raff,

Merci pour tes suggestions, j'ai donc ajouté l'option md5() et utilisé pour la vérif isset()

Laurent
R@f
le 05/09/2004 à 22:15:00
Hello!
Bien! Juste un truc, le pseudo n'a pas besoin d'être crypté...

@++

R@f
c-bolo
le 23/02/2005 à 01:02:00
salut a tou j'ai fais le truc mais apparament il y as toujour une erreur a la ligne 54 merci de m'aider a+
R@f
le 23/02/2005 à 09:03:00
Salut!
C'est laquelle la 54 ?

@++

R@f
Laurent
le 23/02/2005 à 16:16:00
Slt,
Ya un forum pour discuter des problemes de scripts. Merci d'y penser : )
100marques
le 21/04/2007 à 23:22:00
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
KOogar
le 23/04/2007 à 01:49:00
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.
R@f
le 24/04/2007 à 20:36:00
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
KOogar
le 24/04/2007 à 21:50:00

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 ;)
100marques
le 25/04/2007 à 17:36:00
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
R@f
le 26/04/2007 à 09:13:00
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
plor
le 07/10/2008 à 17:48:00
Yeah comment débuter en beauté

Poster un commentaire

:P :) :wink: :lol: :surprised: :confused: :mad: :no:
Taille du texte:
Couleur:
Code de sécurité

Les dernières offres d'emploi