|
|
|
@ -17,7 +17,7 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
|
|
|
|
|
$req = 'SELECT * FROM postfix_utilisateurs WHERE utilisateur=:identifiant';
|
|
|
|
|
|
|
|
|
|
$sql = $pdo->prepare($req);
|
|
|
|
|
$sql->bindValue(':identifiant', $identifiant);
|
|
|
|
|
$sql->bindValue(':identifiant', htmlspecialchars($identifiant));
|
|
|
|
|
$sql->execute();
|
|
|
|
|
|
|
|
|
|
$result = $sql ->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
@ -51,4 +51,66 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initValeursSession($result) {
|
|
|
|
|
$_SESSION['id_utilisateur'] = $result[0]['id'];
|
|
|
|
|
$_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
|
|
|
|
|
$_SESSION['nom_utilisateur'] = $result[0]['nom_complet'];
|
|
|
|
|
$_SESSION['privilege_utilisateur'] = $result[0]['privilege'];
|
|
|
|
|
$_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function creerCookie($result) {
|
|
|
|
|
$cookie_params = array (
|
|
|
|
|
'expires' => time() + 60*60*24*30,
|
|
|
|
|
'path' => '/',
|
|
|
|
|
'domain' => $_SERVER['HTTP_HOST'],
|
|
|
|
|
'secure' => false, // Mettre à true en prod (PENSER À LE FAIRE DANS deconnexion.php ET "Prolongement de la durée du cookie" AUSSI !)
|
|
|
|
|
'httponly' => true,
|
|
|
|
|
'samesite' => 'Strict'
|
|
|
|
|
);
|
|
|
|
|
setcookie('souvenir-session', htmlspecialchars($_SESSION['pseudo_utilisateur']).'|--@--|'.hash('sha3-512', $result['0']['id'].$result['0']['utilisateur'].$result['0']['mot_de_passe']), $cookie_params);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function validationCookie($pdo) {
|
|
|
|
|
if (isset($_COOKIE['souvenir-session'])) {
|
|
|
|
|
if (!isset($_SESSION['id_utilisateur'])) {
|
|
|
|
|
$donnees_cookie=explode('|--@--|', $_COOKIE['souvenir-session']);
|
|
|
|
|
try {
|
|
|
|
|
$req = 'SELECT * FROM postfix_utilisateurs WHERE utilisateur=:identifiant';
|
|
|
|
|
|
|
|
|
|
$sql = $pdo->prepare($req);
|
|
|
|
|
$sql->bindValue(':identifiant', htmlspecialchars($donnees_cookie['0']));
|
|
|
|
|
$sql->execute();
|
|
|
|
|
|
|
|
|
|
$result = $sql ->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
$comptage = count($result);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch(PDOException $e) {
|
|
|
|
|
die ("Erreur lors du traitement de la requête : " . $e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($comptage == 1) {
|
|
|
|
|
if (hash('sha3-512', $result['0']['id'].$result['0']['utilisateur'].$result['0']['mot_de_passe'])===$donnees_cookie['1']) {
|
|
|
|
|
// Cookie valide. On initialise les variables de sessions pour le bon fonctionnement du site.
|
|
|
|
|
initValeursSession($result);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
// Cookie invalide (probablement modifié par l'utilisateur).
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// Prolongement de la durée du cookie
|
|
|
|
|
setcookie('souvenir-session', $_COOKIE['souvenir-session'], ['expires' => time() + 60*60*24*30, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => false, 'httponly' => true, 'samesite' => 'strict']);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|