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
| class auth {
var $connect;
function __construct() {
$db=DB_NAME;
$host=DB_HOST;
$passwd=DB_PASSWD;
$user=DB_USER;
$this->connect=new mysqli($host,$user,$passwd,$db);
if (mysqli_connect_errno()) {
throw new Exception ('Erreur : ne peut se connecter à la base de donnée. Merci de réessayer plus tard.');
}
}
function ProtectVar($chaine){
$chaine=$this->connect->real_escape_string(trim($chaine));
return $chaine;
}
/*
* fonction qui vérifie le pseudo et le mot de passe entré
* s'ils correspondent bien
* @param string $pseudo
* @param string $passwd
*/
function Login($pseudo,$passwd) {
if (empty($pseudo) || empty($passwd)){
throw new Exception('Les champs pseudo ou password sont vides.');
}
$pseudo=$this->ProtectVar($pseudo);
$passwd=$this->ProtectVar($passwd);
$passwd=sha1('bast'.$passwd);
$query="select * from membres where pseudo='$pseudo' and passwd='$passwd'";
$result=$this->connect->query($query);
if (!$result) {
throw new Exception('L\'identification a échoué.');
}
//on vérifie que le compte soit activé
if ($result->num_rows=='1'){
$row=$result->fetch_row();
if ($row['1']=='0') {
throw new Exception('Votre compte n\'est pas encore activé.');
}
} else {
throw new Exception('L\'identification a échoué.');
}
session_start();
if ($_SESSION['pseudo']) {
unset ($_SESSION['pseudo']);
session_destroy();
}
session_regenerate_id(true);
$_SESSION['pseudo']=$pseudo;
$_SESSION['niveau']=$row['6'];
$_SESSION['dateacces']=time();
}
/*
* fonction à mettre en tete de chaque page
* elle vérifie qu'un utilisateur est connecté
*/
function EstConnecte() {
session_start();
regenerate_id(true);
if (isset($_SESSION['pseudo']) && isset($_SESSION['niveau']) && isset($_SESSION['dateacces']) && $_SESSION['dateacces']+600<time()) {
$_SESSION['dateacces']=time();
return true;
} else {
return false;
}
}
} |
Partager