1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| //Initialise la session
function sessionInitialisation($Ajax = false)
{
//Insertion Header P3P
header('p3p: CP="Mettre votre policy"');
//Insertion Header No-Cache
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
//Détecte si le navigateur n'est pas un robot
$ServeurAgent = strtolower($_SERVER["HTTP_USER_AGENT"]);
if(strpos($ServeurAgent, "flock") !== false) $Navigateur = "flock";
elseif(strpos($ServeurAgent, "firefox")) $Navigateur = "firefox";
elseif(strpos($ServeurAgent, "msie") !== false) $Navigateur = "msie";
elseif(strpos($ServeurAgent, "opera") !== false) $Navigateur = "opera";
elseif(strpos($ServeurAgent, "chrome") !== false) $Navigateur = "chrome";
elseif(strpos($ServeurAgent, "safari") !== false) $Navigateur = "safari";
elseif(strpos($ServeurAgent, "gecko")) $Navigateur = "mozilla";
else $Navigateur = "";
if($Navigateur != "")
{
//Ouverture de la session
session_save_path("Chemin si nécessaire");
session_start();
//Ajout
//Redirection sur la page de test des cookies
if(empty($_COOKIE) && $_GET["GGG"] != "coo")
{
$Redirection = "http://" . SERVEUR . $_SERVER["REQUEST_URI"] ."coo/";
header("Location: $Redirection");
exit;
}
//Redirection sur la page des cookies si ils ne sont pas acceptés par l'utilisateur
elseif(empty($_COOKIE) && $_GET["GGG"] == "coo")
{
sessionDestruction(false);
$Redirection = "http://" . SERVEUR . BASE_SITE . "/cookies/";
header("Location: $Redirection");
exit;
}
//Redirection sur la page intiale avant le test des cookies
elseif(!empty($_COOKIE) && $_GET["GGG"] == "coo")
{
$Redirection = $_SERVER["HTTP_REFERER"];
header("Location: $Redirection");
exit;
}
//Fin Ajout
//Vérification des cookies
if(SID == "") define("COOKIE", true);
else define("COOKIE", false);
if(COOKIE === true && $Ajax === true)
{
//Vérifie si le champ Initialisation est en place ou pas
if((!isset($_SESSION["FFF"]) || $_SESSION["FFF"] == "") && $Ajax !== true)
{
sessionDestruction(false);
session_start();
$_SESSION["FFF"] = time();
//Détermine les paramètres de l'utilisateur
$_SESSION["XXX"] = $_SERVER["REMOTE_ADDR"];
$_SESSION["YYY"] = $_SERVER["HTTP_ACCEPT_ENCODING"];
$_SESSION["ZZZ"] = $_SERVER["HTTP_USER_AGENT"];
}
//Quitte l'application si les paramètres de l'utilisateur ne sont pas les mêmes que ceux de l'initialisation
//Utilisé lors d'appels ultérieurs à la session
//On pourrait faire une vérification sur l'adresse IP mais elle peut varier pour certains utilisateurs en cours de navigation
elseif(($_SESSION["YYY"] != $_SERVER["HTTP_ACCEPT_ENCODING"] || $_SESSION["ZZZ"] != $_SERVER["HTTP_USER_AGENT"]) && $Ajax !== true)
{
sessionDestruction(true);
exit;
}
}
//Redirection sur la page des cookies si ils ne sont pas acceptés par l'utilisateur
else
{
sessionDestruction(false);
$Redirection = "http://www.monsite.com/cookies/";
header("Location: $Redirection");
exit;
}
}
}
function sessionDestruction($Redirection = true)
{
//Destruction des variables de la session
session_unset();
//Destruction de la session
session_destroy();
$_SESSION = array();
//Redirection vers la page d'accueil
if($Redirection === true)
{
$Redirection = "http://www.monsite.com/";
header("Location: $Redirection");
exit;
}
} |