Votre question

[technique] identification + membres dans un site

Tags :
  • Mot de passe
  • Programmation
Dernière réponse : dans Programmation
18 Juin 2004 10:11:59

un peutit topiqueu pour clarifier c qu'est une identification.
s'identifier ou etre membre.... vaste programe ;-)

en gros faut une table (MySQL) qui contient les infos des membres (ben oui)

-pseudo
-mot_de_passe
-email
-nom
-prenom
...

donc faut déja un formulaire d'inscription...
puis faut valider (ou pas cette inscription...)



ensuite ya le systeme d'identification...

ya plusieurs techniques en voila une :

dans un petit formulaire on entre login mot de passe, le script (php) verifie que le login correspond à un membre existant et que le mot de passe est le bon !

en meme temps on genere un identifiant unique et assez compliqué.... avec un code style $id_session=md5(uniqid(rand()));

cet id_session est stocké côté serveur dans une table par ex

table connexion :
- id_session
- login
- expiration

expiration peut servir a definir jusqu'a quand la connexion est valide

coté client (navigateur) l id_session est stocké dans un cookie.

à chaque fois que le visiteur appelle une page on verifie si son id_session correspond a quelque chose dans la table connexion... si c le cas c que c un membre identifié !!!! CQFD

en plus en interrogeant la table connexion on a des infos sur qui s'est logé quand !

autre technique :
apres le formulaire login/mot de passe on met le login et le mot de passe dans des cookies et on teste a chaque fois si c OK (moin elegant et le mot de passe transite a chaque requete...)

voilou les bases


Autres pages sur : technique identification membres site

18 Juin 2004 20:12:49

oui c bien mais quant on connais pas le php c'est grave chaud j'essaye d'apprendre mais c'est un truc de fou!!
19 Juin 2004 11:31:36

salut ! y'a pas un petit script qui traine tout simple comme l'explication ? lol :$
Contenus similaires
19 Juin 2004 14:37:59

oki je vais faire un petit script tout simple avec commentaire ....

mais la y a bobonne qui me rearde mechamment...

alors po tout de suite ;-/
19 Juin 2004 14:58:03

hmm

ça m'interesse ça

je vous potasserais bien un système d'authentification, simple et secure (si possible)

en plus en lisant ton message, c'était grosso modo mon idée
19 Juin 2004 17:46:15

bon on a qu a commencer simple et le faire evoluer comme ça ça sera didactique en plus !
19 Juin 2004 17:50:00

hmm un projet php/sql qui née sur IDN sa promet ...
bonne chance ;-)
19 Juin 2004 18:28:28

voila pour la partie d'identification
reste a faire un formulaire d'inscription...

login : toto
password : azerty

----------------------------------------------------------------------
fichier mapage.php
----------------------------------------------------------------------

<?

$link = mysql_connect("localhost","root","");
mysql_select_db("test",$link);

// pour l'instant pas de membre
$login_membre="";

// si une cle existe cote client dans un cookie
if(isset($_COOKIE['cle']))
{
// je cherche si cette cle existe cote serveur...
$query="select * from connexion where BINARY cle = '$_COOKIE[cle]'";
$results=mysql_query($query,$link);
$connexion=mysql_fetch_array($results);
mysql_free_result($results);

//si une connexion correspond ! on resupere le login
if($connexion) $login_membre=$connexion['login'];

}
?>

<html>
<body>
<b><?
// il suffit de tester la variable $login_membre...
if($login_membre)
{
?>
bonjour membre <? echo $login_membre; ?> connecté<br>
ça va bien ?
<?
}
else
{
?>
bonjour invité
<?
}
?>
</b><br><br>
blabla<br>

la c le formulaire d'identification qui appelle verifier.php
<form method=post action="verifier.php">

un champ caché qui contient l'url à afficher si l'identification réussit
<input type=hidden name=urlok value="mapage.php"><br>

un champ caché qui contient l'url à afficher si l'identification echoue
<input type=hidden name=urlko value="ko.php"><br>

login <input type=text name=login value=""><br>
password <input type=password name=password value=""><br>
<input type=submit value="OK">

</form><br>

blabla<br>

</body>
</html>
----------------------------------------------------------------------
fin : fichier mapage.php
----------------------------------------------------------------------


----------------------------------------------------------------------
fichier verifier.php
----------------------------------------------------------------------

<?

$link = mysql_connect("localhost","root","");
mysql_select_db("test",$link);

//cle vide
$cle="";

// je cherche le membre qui correspond au login tapé...
$query="select * from membre where login = '$_POST[login]'";
$results=mysql_query($query,$link);
$membre=mysql_fetch_array($results);
mysql_free_result($results);

//si aucun membre ne correspond >> urlko
if(!$membre) $url=$_POST['urlko'];
//si le mot de pass n'est pas le bon >> urlko
else if($membre['password']!=$_POST['password']) $url=$_POST['urlko'];
else
{
//si c ok creation d'un identifiant unique...
$cle=md5(uniqid(rand()));

//on le stock dans une table connexion en l'associant au login...
$query="replace into connexion(cle, login) values ('$cle','$membre[login]')";
mysql_query($query,$link);

// l'url de destination est l'url OK...
$url=$_POST['urlok'];
}

//on stock la clé côté client dans un cookie...
setcookie("cle",$cle);
// elle est vide si l'identification a echoué
?>
<html>
<body onLoad="location.href='<? echo $url; ?>'">
</body>
</html>


----------------------------------------------------------------------
fin : fichier verifier.php
----------------------------------------------------------------------


----------------------------------------------------------------------
fichier ko.php
----------------------------------------------------------------------

<html>
<body>
tu t'es gourré
<a href="mapage.php">retour</a>
</body>
</html>

----------------------------------------------------------------------
fin fichier ko.php
----------------------------------------------------------------------



----------------------------------------------------------------------
script pour la base de donnée MySQL
----------------------------------------------------------------------

USE test;

# --------------------------------------------------------

#
# Table structure for table `connexion`
#

CREATE TABLE `connexion` (
`cle` varchar(32) NOT NULL default '',
`login` varchar(16) NOT NULL default '',
PRIMARY KEY (`cle`)
) TYPE=MyISAM;

# --------------------------------------------------------

#
# Table structure for table `membre`
#

CREATE TABLE `membre` (
`type` varchar(8) NOT NULL default '',
`login` varchar(16) NOT NULL default '',
`password` varchar(16) NOT NULL default '',
PRIMARY KEY (`login`)
) TYPE=MyISAM;

#
# Dumping data for table `membre`
#

INSERT INTO `membre` VALUES ('membre', 'toto', 'azerty');

----------------------------------------------------------------------
fin script pour la base de donnée MySQL
----------------------------------------------------------------------
19 Juin 2004 22:21:51

ben ouais j'ai di que je simplifier c un topic pour faire comprendre pas pour en mettre plein la vu ...

j'ai enlevé toute utilisation de fonction, utilisation d'include et autre ....
c basic mais c le meme principe

je dirais meme que tu te complique la vie ;-)
19 Juin 2004 23:16:43

pourquoi faire simple quand on peut faire compliqué ?
20 Juin 2004 00:12:09

Bon, j'ai quelque chose de fonctionnel, mais pas utilisable forcément :) 
20 Juin 2004 09:10:38

fais voir !!!! fais voir !!!!
ya toujours a apprendre en voyant le code d'autrui ;-)
13 Juin 2006 12:02:11

bonjour,

j'ai commence a faire ce qui est expliqué plus haut mais je bloque ...
que fait on du script pour la base SQL ????
on le met dans un fichier .txt .html .php .sql ?????
merci de m'aider, c ma 1ere base
8 Janvier 2008 01:40:41

salut pour te repondre

Citation :
j'ai commence a faire ce qui est expliqué plus haut mais je bloque ...
que fait on du script pour la base SQL ????
on le met dans un fichier .txt .html .php .sql ?????
merci de m'aider, c ma 1ere base


pour le script tu va dans phpmyadmin de ton hébergeur et tu entre les commandes en copier/coller dans la boite de dialogue sql

sinon tu crée un fichier install.php et un fichier config.php avec tous les détails de ta bdd
puis voila un exemple du contenu de ton fichier install.php:

---install.php contenu:---

<?php
require("config.inc.php");
include("$functions/functions.inc.php");

USE test;

# --------------------------------------------------------

#
# Table structure for table `connexion`
#

connecter();

$query="CREATE TABLE `connexion` (
`cle` varchar(32) NOT NULL default '',
`login` varchar(16) NOT NULL default '',
PRIMARY KEY (`cle`)
) TYPE=MyISAM;

# --------------------------------------------------------

#
# Table structure for table `membre`
#

CREATE TABLE `membre` (
`type` varchar(8) NOT NULL default '',
`login` varchar(16) NOT NULL default '',
`password` varchar(16) NOT NULL default '',
PRIMARY KEY (`login`)
) TYPE=MyISAM;

#
# Dumping data for table `membre`
#

INSERT INTO `membre` VALUES ('membre', 'toto', 'azerty');
$result=@mysql_query($query);
?>


voila
A+
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS