Stats
- 8 connecté(e)s
- 5926 membres
-
- 1225 news
- 3173 topics
- 70 articles
- 35 questions
- 144 sites
-
- St(e) Thibault
Proverbes
- C'est quand on n'a plus d'espoir qu'il ne faut désespérer de rien
- [ Sénèque ]
Partenaires

Créer un espace membres
Posté par kazhar le 28/05/2005 dans la catégorie Divers
-
- Un espace membres sur votre site peut vous permettre de fidéliser vos visiteurs.
en effet, vous pouvez leur proposer, via celui-ci, de personnaliser les pages de votre site à leur guise, de leur proposer l'acces à une newsletter, ...
tout d'abord, créons la table des membres.
nous allons faire 'simple', en mettant simplement les champs :
- identifiant, qui sera unique, et qui permettra d'identifier le membre pas un chiffre
- pseudo : le pseudo du membre
- pass : le mot de passe du membre
- sid : qui sera un numéro unique, et qui vous permettra de vérifier la connection d'un membre
créons donc notre table sql :
Code :
CREATE TABLE `Membres` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`pseudo` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR NOT NULL ,
`sid` INT NOT NULL
)
vous pourrez, si vous le désirez, par la suite, ajouter des champs...
nous devons maintenant laisser la possibilités aux membres inscrits de se loguer.
pour cela, à chaque chargement de page, nous vérifieront la validité de la connection.
puis, nous modifieront le sid (par mesure de sécurité) et nous définiront les variables de connection du visiteur...
Code :
//vous devez définir avant les variables $pseudo, et $sess. vous pouvez pour cela, passer par un formulaire, ou définir des cookies, puis définir ces deux variables. $pseudo contiendra le pseudo, $session le sid
if (isset($pseudo) && isset($sess)) {
unset($userdata);
$userdata = array();
$connect = mysql_connect($sql_server, $sql_pseudo, $sql_pass);
mysql_select_db($sql_db);
$sql = "SELECT *
FROM `Membres`
WHERE `pseudo` = '$pseudo'
AND `sid` = '$session';";
$query = mysql_query($sql);
if (mysql_num_rows($query) != 0) {
$fetch = mysql_fetch_array($query);
foreach ($fetch as $nom => $valeur) {
if ($nom != 'sid') {
$userdata[$nom] = $valeur;
}
}
srand((double)microtime()*1000000);
$sid = md5(uniqid(rand()));
$sql = "UPDATE `Membres`
SET `sid` ='$sid'
WHERE `id` = '$userdata[id]';";
$query = mysql_query($sql);
$session = $sid;
unset($sid);
}
mysql_close($connect);
}
comment ca fonctionne ?
on vérifie la valeur des deux variables, puis on se connecte à la base de données.
la, on vérifie que $session est bien égal au champ sid.
si il l'est bien, on définit $userdata, qui contient toutes les données de l'utilisateur (excepté l'identifiant de session)
et on modifie cet identifiant de session.
cependant, il nous faut encore connecter la personne...
voici une solution :
Code :
//vous avez juste à faire un formulaire avec une method=post avant, permettant de définir un pseudo, et un mot de passe...
if (isset($_POST['pseudo']) && isset($_POST['pass'])) {
$n = $_POST['pseudo'];
$p = $_POST['pass];
unset($userdata);
$userdata = array();
$connect = mysql_connect($sql_server, $sql_pseudo, $sql_pass);
mysql_select_db($sql_db);
$sql = "SELECT *
FROM `Membres`
WHERE `pseudo` = '$n'
AND `pass` = '$p';";
$query = mysql_quer($sql);
if (mysql_num_rows($query) != 0) {
$fetch = mysql_fetch_array($query);
foreach ($fetch as $nom => $valeur) {
if ($nom != 'sid') {
$userdata[$nom] = $valeur;
}
}
srand((double)microtime()*1000000);
$sid = md5(uniqid(rand()));
$sql = "UPDATE `Membres`
SET `sid` ='$sid'
WHERE `id` = '$userdata[id]';";
$query = mysql_query($sql);
$session = $sid;
unset($sid);
}
}
}
voila, vous n'avez plus qu'à décider de la maniere dont vous stockez le sid, soit dans l'url, soit dans un cookie (je vous conseille cependant fortement les cookies )
ainsi qu'un formulaire vous permettant de créer un compte membre...
PHPortail.net © 2003 - 2008; Tous les droits réservés - Webmaster: Philippe Gamache
Site valide Xhtml Strict, CSS 2