develop dans master - première version stable #9
@@ -1,18 +1,24 @@
|
|||||||
const listedesentree = [];
|
/*
|
||||||
|
* Page de fonctions JavaScript afférentes à l'affichage dynamique d'éléments.
|
||||||
|
**/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fonction permettant d'afficher et de masquer le bouton d'enregistrement d'un changement d'état pour les alias virtuels, domaines et entrées de liste noire d'un utilisateur.
|
||||||
|
**/
|
||||||
function activationBoutonFlotant(lui) {
|
function activationBoutonFlotant(lui) {
|
||||||
if (listedesentree.find(function(valeur) {return valeur == lui.name;})) {
|
const listedesentrees = [];
|
||||||
for( var i = 0; i < listedesentree.length; i++){
|
if (listedesentrees.find(function(valeur) {return valeur == lui.name;})) {
|
||||||
if ( listedesentree[i] === lui.name) {
|
for( var i = 0; i < listedesentrees.length; i++){
|
||||||
listedesentree.splice(i, 1);
|
if ( listedesentrees[i] === lui.name) {
|
||||||
|
listedesentrees.splice(i, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
listedesentree.push(lui.name);
|
listedesentrees.push(lui.name);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (listedesentree.length > 0){
|
if (listedesentrees.length > 0){
|
||||||
document.getElementById("enregistrer-interrupteur").classList.remove("desactiver");
|
document.getElementById("enregistrer-interrupteur").classList.remove("desactiver");
|
||||||
document.getElementById("enregistrer-interrupteur").style.display = "block";
|
document.getElementById("enregistrer-interrupteur").style.display = "block";
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
|
|||||||
|
|
||||||
if ($comptage == 1) {
|
if ($comptage == 1) {
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Les paramètres de la fonction crypt de $mot_de_passe_form sont composés du mot de passe issue du formulaire accueil ainsi que du sel.
|
* Les paramètres de la fonction crypt de $mot_de_passe_form sont composés du mot de passe issue du formulaire accueil ainsi que du sel.
|
||||||
* Les signes dollars sont des séparateurs. $mot_de_passe_base[1]=6=SHA512. $mot_de_passe_base[2]=au sel du mot de passe contenu dans la base.
|
* Les signes dollars sont des séparateurs. $mot_de_passe_base[1]=6=SHA512. $mot_de_passe_base[2]=au sel du mot de passe contenu dans la base.
|
||||||
* Les paramètres de sel sont issus du mot de passe haché contenu dans la base.
|
* Les paramètres de sel sont issus du mot de passe haché contenu dans la base.
|
||||||
@@ -56,6 +56,10 @@ function validationIdentifiants($pdo,$identifiant,$mdp) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fonction d'initialisation des valeurs de session.
|
||||||
|
* Elle utilise les informations de l'utilisateur en base de données pour initialiser une session personnalisée.
|
||||||
|
*/
|
||||||
function initValeursSession($result) {
|
function initValeursSession($result) {
|
||||||
$_SESSION['id_utilisateur'] = $result[0]['id'];
|
$_SESSION['id_utilisateur'] = $result[0]['id'];
|
||||||
$_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
|
$_SESSION['pseudo_utilisateur'] = $result[0]['utilisateur'];
|
||||||
@@ -64,18 +68,28 @@ function initValeursSession($result) {
|
|||||||
$_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur'];
|
$_SESSION['pseudo_connexion_utilisateur'] = $result[0]['utilisateur'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fonction de création d'un cookie de connexion automatique.
|
||||||
|
* Si la case "Se souvenir de moi" est cochée au formulaire de connexion, un cookie d'une durée d'un mois est créé.
|
||||||
|
*/
|
||||||
function creerCookie($result) {
|
function creerCookie($result) {
|
||||||
$cookie_params = array (
|
$cookie_params = array (
|
||||||
'expires' => time() + 60*60*24*30,
|
'expires' => time() + 60*60*24*30,
|
||||||
'path' => '/',
|
'path' => '/',
|
||||||
'domain' => $_SERVER['HTTP_HOST'],
|
'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 !)
|
'secure' => false, // Mettre à true pour ne le créer qu'en HTTPS (le faire également dans "deconnexion.php" et au commentaire "Prolongement de la durée du cookie." plus bas).
|
||||||
'httponly' => true,
|
'httponly' => true,
|
||||||
'samesite' => 'Strict'
|
'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);
|
setcookie('souvenir-session', htmlspecialchars($_SESSION['pseudo_utilisateur']).'|--@--|'.hash('sha3-512', $result['0']['id'].$result['0']['utilisateur'].$result['0']['mot_de_passe']), $cookie_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fonction de validation du cookie de connexion automatique.
|
||||||
|
* Vérifie la légitimité du cookie de connexion de l'utilisateur via les informations en base de données.
|
||||||
|
* Si légitime, une session PHP est initialisée et le cookie est renouvelé pour un mois supplémentaire.
|
||||||
|
* Si non légitime, la fonction ne fait rien. Le comportement du site s'en remet alors à la seule existence d'une session PHP.
|
||||||
|
*/
|
||||||
function validationCookie($pdo) {
|
function validationCookie($pdo) {
|
||||||
if (isset($_COOKIE['souvenir-session'])) {
|
if (isset($_COOKIE['souvenir-session'])) {
|
||||||
if (!isset($_SESSION['id_utilisateur'])) {
|
if (!isset($_SESSION['id_utilisateur'])) {
|
||||||
@@ -89,7 +103,6 @@ function validationCookie($pdo) {
|
|||||||
|
|
||||||
$result = $sql ->fetchAll(PDO::FETCH_ASSOC);
|
$result = $sql ->fetchAll(PDO::FETCH_ASSOC);
|
||||||
$comptage = count($result);
|
$comptage = count($result);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(PDOException $e) {
|
catch(PDOException $e) {
|
||||||
die ("Erreur lors du traitement de la requête : " . $e->getMessage());
|
die ("Erreur lors du traitement de la requête : " . $e->getMessage());
|
||||||
@@ -110,12 +123,11 @@ function validationCookie($pdo) {
|
|||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Prolongement de la durée du cookie
|
// 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']);
|
setcookie('souvenir-session', $_COOKIE['souvenir-session'], ['expires' => time() + 60*60*24*30, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => false, 'httponly' => true, 'samesite' => 'strict']);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -27,6 +27,9 @@ if (isset($_POST['identifiant']) && isset($_POST['mdp']) && !empty($_POST['ident
|
|||||||
creerCookie($result);
|
creerCookie($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Définition des privilèges de l'utilisateur en fonction du paramètre spécifié dans la base de données.
|
||||||
|
*/
|
||||||
if (isset($_SESSION['pseudo_utilisateur']) && !empty($_SESSION['pseudo_utilisateur']) && $_SESSION['privilege_utilisateur']==="administrateur") {
|
if (isset($_SESSION['pseudo_utilisateur']) && !empty($_SESSION['pseudo_utilisateur']) && $_SESSION['privilege_utilisateur']==="administrateur") {
|
||||||
header ("location: /pages/gestion/administration.php?message=bienvenue&page=accueil");
|
header ("location: /pages/gestion/administration.php?message=bienvenue&page=accueil");
|
||||||
die();
|
die();
|
||||||
|
|||||||
Reference in New Issue
Block a user