Voyons comment faciliter l'accès à l'espace membre de votre site pour vos internautes avec un bouton "Se souvenir de moi" dans le formulaire de connexion !
ATTENTION: Utiliser les cookies sans en informer l'utilisateur n'est pas légal... Il faut le prévenir avec un message comme "En poursuivant ma navigation sur ce site, j'autorise l'utilisation de cookies", plus d'infos à ce sujet ici : http://goo.gl/qwCxTb et merci à Wistaro pour m'avoir fait penser à préciser ça !
Documentation setcookie() : http://goo.gl/63mK0s
- connexion.php
<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
include_once('cookieconnect.php');
if(isset($_POST['formconnexion']))
{
$mailconnect = htmlspecialchars($_POST['mailconnect']);
$mdpconnect = sha1($_POST['mdpconnect']);
if(!empty($mailconnect) AND !empty($mdpconnect))
{
$requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND motdepasse = ?");
$requser->execute(array($mailconnect, $mdpconnect));
$userexist = $requser->rowCount();
if($userexist == 1)
{
if(isset($_POST['rememberme'])) {
setcookie('email',$mailconnect,time()+365*24*3600,null,null,false,true);
setcookie('password',$mdpconnect,time()+365*24*3600,null,null,false,true);
}
$userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['mail'] = $userinfo['mail'];
header("Location: profil.php?id=".$_SESSION['id']);
}
else
{
$erreur = "Mauvais mail ou mot de passe !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}
}
?>
<html>
<head>
<title>TUTO PHP</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Connexion</h2>
<br /><br />
<form method="POST" action="">
<input type="email" name="mailconnect" placeholder="Mail" />
<input type="password" name="mdpconnect" placeholder="Mot de passe" />
<br /><br />
<input type="checkbox" name="rememberme" id="remembercheckbox" /><label for="remembercheckbox">Se souvenir de moi</label>
<br /><br />
<input type="submit" name="formconnexion" value="Se connecter !" />
</form>
<?php
if(isset($erreur))
{
echo '<font color="red">'.$erreur."</font>";
}
?>
</div>
</body>
</html>
- deconnexion.php
<?php
session_start();
setcookie('email','',time()-3600);
setcookie('password','',time()-3600);
$_SESSION = array();
session_destroy();
header("Location: connexion.php");
?>
- cookieconnect.php
<?php
if(!isset($_SESSION['id']) AND isset($_COOKIE['email'],$_COOKIE['password']) AND !empty($_COOKIE['email']) AND !empty($_COOKIE['password'])) {
$requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND motdepasse = ?");
$requser->execute(array($_COOKIE['email'], $_COOKIE['password']));
$userexist = $requser->rowCount();
if($userexist == 1)
{
$userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['mail'] = $userinfo['mail'];
}
}
?>
Votre commentaire