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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
//------------------------------------------------------------------------
// Fonctions pour autentification générale
//------------------------------------------------------------------------
function logonok($level=0)
{
global $root,$userlogin;
if (LOGINTYPE!=1)
{ // Authentification HTTP
if (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']))
{
$res=mysql_query("SELECT * FROM act_user WHERE login='".$_SERVER['PHP_AUTH_USER']."' AND passw='".$_SERVER['PHP_AUTH_PW']."'");
if (mysql_num_rows($res)!=0)
{
$row = mysql_fetch_array($res);
if ($row["level"]>=$level)
{
$userlogin = $_SERVER['PHP_AUTH_USER'];
recharger_solde();
return $row["level"];
}
else
{return 0;}
}
else
{
return 0;
}
}
elseif ($level <= PUBLIC_LEVEL)
{
return PUBLIC_LEVEL;
}
else
{
return 0;
}
}
else
{ // Autentification PHP
if ($_REQUEST['login']!="") // si on présente un login, on le teste de suite
{
$userid = 0;
$userlevel=CheckUser($_REQUEST['login'],$_REQUEST['passwd'],$userid);
if($userlevel==0)
{
header("Location: ".$root."/login.php?cas=1&uri=".urlencode($_SERVER['REQUEST_URI']));
die();
}
else
{
$md5=md5($_REQUEST['login'].$_REQUEST['passwd']);
if ($_REQUEST['saved']=='yes') $duree = time()+(60*60*24)*5;
else $duree = null;
setcookie('md5',$md5,$duree,$root);
setcookie('userid',$userid,$duree,$root);
$niveau = $userlevel;
$userlogin = $_REQUEST['login'];
}
}
elseif(isset($_COOKIE['userid']) and isset($_COOKIE['md5']))
{
$niveau = CheckMD5($_COOKIE['userid'],$_COOKIE['md5']); // mets à jour $userlogin
if ($niveau < $level) $niveau = 0;
}
elseif ($level <= PUBLIC_LEVEL)
{
$niveau = PUBLIC_LEVEL; // ne pas (re)positionner userlogin
}
else
{
header("Location: ".$root."/login.php?cas=2&uri=".urlencode($_SERVER['REQUEST_URI']));
die();
}
recharger_solde();
return $niveau;
}
}
//------------------------------------------------------------------------
// Fonctions pour autentification HTTP
//------------------------------------------------------------------------
function login($path) // Uniquement utilisé par authentification
{
global $root;
if (LOGINTYPE!=1)
{
if (!isset($_SERVER['PHP_AUTH_USER']) and !isset($_SERVER['PHP_AUTH_PW']))
{
Header('WWW-Authenticate: Basic realm="Monsite"');
Header("HTTP/1.0 401 Unauthorized");
open_page("Gestion des accès",$path);
echo '<TABLE width="100%" height="50%"><tr><td align="center">'."\n";
echo "<b>Les données plus détaillées ne sont accessibles qu'aux utilisateurs enregistrés<br><br>\n";
echo "<b>Veuillez entrer votre code utilisateur et votre mot de passe !</b><br><br>\n";
echo '<a href="javascript:history.back()"><Retourner à la page précédente></a></p>'."\n";
echoln('<p><a href="'.$root.'/acces.php">Voir les conditions d\'accès à la partie privée du site</a></p>');
echo "</td></tr></TABLE>\n";
close_page();
exit;
}
else
{
open_page("Gestion des accès",$path);
echo '<TABLE width="100%" height="50%"><tr><td align="center">'."\n";
echo "<b>Désolé, vous ne possédez pas le niveau d'accès suffisant pour accéder à cette page !</b><br><br>\n";
echo '<a href="javascript:history.back()"><Retourner à la page précédente></a></p>'."\n";
echo '<p>ou</p>';
echo '<p><a href="'.$root.'/index.php?act=relogin"><Vous connecter à nouveau></a></p>'."\n";
echo "</td></tr></TABLE>\n";
echoln( '<p><a href="'.$root.'/acces.php">Voir les conditions d\'accès à la partie privée du site</a></p>');
close_page();
exit;
}
}
else
{
header("Location: ".$root."/login.php?cas=3&uri=".urlencode($_SERVER['REQUEST_URI']));
die();
}
}
//------------------------------------------------------------------------
function relogin() // test juste si le login est ok sans vérifier le level
{
if (!isset($_SERVER['PHP_AUTH_USER']) and !isset($_SERVER['PHP_AUTH_PW'])) return 0;
$db=con_db();
$res=mysql_query("SELECT * FROM act_user WHERE login='".$_SERVER['PHP_AUTH_USER']."' AND passw='".$_SERVER['PHP_AUTH_PW']."'",$db);
if (mysql_num_rows($res)!=0)
{return 1;}
else
{return 0;}
}
//------------------------------------------------------------------------ |
Partager