vendredi 3 juin 2016 à 09:52
J'ai trouvé un tuto qui parle de créer un espace membre. Dans ce tuto, il y a un une partie qui utilise une fonction actualisation de la session mais je ne suis pas sûr que cela récupère bien l'id de l'internaute dans la base...
<?php
function actualiser_session()
{
if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id
{
//utilisation de la fonction sqlquery, on sait qu'on aura qu'un résultat car l'id d'un membre est unique.
$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_id = ".intval($_SESSION['membre_id']), 1);
//Si la requête a un résultat (c'est-à-dire si l'id existe dans la table membres)
if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] != '')
{
if($_SESSION['membre_mdp'] != $retour['membre_mdp'])
{
//Dehors vilain pas beau !
$informations = Array(/*Mot de passe de session incorrect*/
true,
'Session invalide',
'Le mot de passe de votre session est incorrect, vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
else
{
//Validation de la session.
$_SESSION['membre_id'] = $retour['membre_id'];
$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
$_SESSION['membre_mdp'] = $retour['membre_mdp'];
}
}
}
else //On vérifie les cookies et sinon pas de session
{
if(isset($_COOKIE['membre_id']) && isset($_COOKIE['membre_mdp'])) //S'il en manque un, pas de session.
{
if(intval($_COOKIE['membre_id']) != 0)
{
//idem qu'avec les $_SESSION
$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_id = ".intval($_COOKIE['membre_id']), 1);
if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] != '')
{
if($_COOKIE['membre_mdp'] != $retour['membre_mdp'])
{
//Dehors vilain tout moche !
$informations = Array(/*Mot de passe de cookie incorrect*/
true,
'Mot de passe cookie erroné',
'Le mot de passe conservé sur votre cookie est incorrect vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
else
{
//Bienvenue :D
$_SESSION['membre_id'] = $retour['membre_id'];
$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
$_SESSION['membre_mdp'] = $retour['membre_mdp'];
}
}
}
else //cookie invalide, erreur plus suppression des cookies.
{
$informations = Array(/*L'id de cookie est incorrect*/
true,
'Cookie invalide',
'Le cookie conservant votre id est corrompu, il va donc être détruit vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
}
else
{
//Fonction de suppression de toutes les variables de cookie.
if(isset($_SESSION['membre_id'])) unset($_SESSION['membre_id']);
vider_cookie();
}
}
}
function vider_cookie()
{
foreach($_COOKIE as $cle => $element)
{
setcookie($cle, '', time()-3600);
}
}
?>