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
| <?php
//definir les robots connu dans un array
$robotsarray = array(
"Googlebot",
"Slurp",
"Fast",
"Scooter",
"VoilaBot",
);
$isrobot = false;
//Verifier si le visiteur est un robot connu
foreach($robotsarray as $spider) {
if (eregi($spider, $_SERVER['HTTP_USER_AGENT'])) {
$isrobot = true;
break;
}
}
//si ce n'est pas le cas, on démarre la session
if(!$isrobot){
session_start();
//ici on crée/verifie une variable d'identification (hachage de l'id du site(unique) + user_agent)
if (!isset($_SESSION[CONFIGNAME]['initiated']))
{
session_regenerate_id();
$_SESSION[CONFIGNAME]['initiated'] = true;
}
if (isset($_SESSION[CONFIGNAME]['HTTP_USER_AGENT']))
{
if ($_SESSION[CONFIGNAME]['HTTP_USER_AGENT'] != md5($config_siteID.$_SERVER['HTTP_USER_AGENT']))
{
//la variable est differente de celle enregistrée précedement: erreur -> retour au login
session_destroy();
header("Location: index.php?com=users&option=login&autherror");
}
}
else
{
//si la variable n'existe pas, on la crée (première visite)
$_SESSION[CONFIGNAME]['HTTP_USER_AGENT'] = md5($config_siteID.$_SERVER['HTTP_USER_AGENT']);
}
//si un nom d'utilisateur est defini, on verifie une seconde varaible definie lors du login
if(isset($_SESSION[CONFIGNAME]['pseudo']) OR isset($_SESSION[CONFIGNAME]['id']) OR isset($_SESSION[CONFIGNAME]['level']))
{
if (isset($_SESSION[CONFIGNAME]['user_session']))
{
//Ne faites pas attention a ça; c'est simplement ma fonction sql.
$req_user = $db->select('users', 'WHERE id="'.intval($_SESSION[CONFIGNAME]['id']).'" AND username="'.mysql_real_escape_string(htmlspecialchars($_SESSION[CONFIGNAME]['pseudo'])).'" AND level="'.intval($_SESSION[CONFIGNAME]['level']).'"');
if(is_array($req_user))
$user = $req_user[0];
if ($_SESSION[CONFIGNAME]['user_session'] != sha1($user['register_date'].$user['password'].$user['register_ip']))
{
session_destroy();
header("Location: index.php?com=users&option=login&autherror");
die();
}
}
else
{
session_destroy();
header("Location: index.php?com=users&option=login&autherror");
die();
}
}
}
?> |