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
|
<?php
// ****************************************************************************
// Description: Ensemble de méthodes pour étendre dbmain
// afin de gérer les utilisateurs
// ****************************************************************************
//
// Import de dbmain
require_once(dirname( __FILE__ )."/dbmain.php");
// Extension de cette classe avec dbmain
class DbUser extends DbMain {
// ****************************************************************************
// Gestion d'un utilisateur
// ****************************************************************************
// Enregistrement d'un nouvel utilisateur
final public function user_register($email, $pass, $is_client, $is_pro, $is_admin) {
// On vérifie si l'email existe deja dans la bdd
$exist = $this->check_exist_email($email);
// Si non
if (!$exist) {
// Chiffrement du pass
$crypt = $this->crypt_pass($pass);
// Préparation de la requète
$reqAddUser = "INSERT INTO ".$this->tableUserAccount."
(email, password, inscriptionDate, isClient, isPro, isAdmin)
VALUES (?, ?, ?, ?, ?, ?)";
// Execution de la requète
$this->exec_cmd($reqAddUser,
array($email,
$crypt,
date("Y-m-d H:i:s"),
$is_client,
$is_pro,
$is_admin
)
);
// Retourne 1 pour réussite
return 1;
} else {
// Retourne 0 pour échec
return 0;
}
}
// Vérification de la combinaison email - pass pour authentification
final public function user_check_credential($email, $pass) {
// Préparation de la requète pour récupérer les infos ou l'email est présent
$reqCheckCredential = "SELECT userId, password
FROM ".$this->tableUserAccount." WHERE email = ? ";
// Chiffrement du mot de passe
$crypt = $this->crypt_pass($pass);
// Execution de la requète
$data = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC);
// Vérifiaction de correspondance email & pass
foreach ($data as $rows) {
if ($rows["password"] == $crypt) {
return $rows["userId"];
}
}
}
// Mise à jour des infos d'un utilisateur
final public function user_infos_update($lastname, $firstname, $job, $degree,
$capability, $description, $phoneNumber,
$adress, $zipCode, $city, $userId) {
// Préparation de la requète pour mise à jour des infos
$reqAddInfo = "REPLACE INTO ".$this->tableUserInfo."
(lastname, firstname, job, degree, capability,
description, phoneNumber, adress, zipCode, city, userId)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
// Exécution de la requète
$this->exec_cmd($reqAddInfo,
array($lastname, $firstname, $job, $degree,
$capability, $description, $phoneNumber,
$adress, $zipCode, $city, $userId
)
);
}
// ****************************************************************************
// Gestion du token-autologin
// ****************************************************************************
// Vérification de la combinaison email - jeton d'auto-login pour authentification
final public function autologin_token_check($email, $token) {
// Préparation de la requète pour récupérer les infos ou l'email est présent
$reqCheckToken = "SELECT userId, tokenAutoLogin
FROM ".$this->tableUserAccount." WHERE email = ?";
// Exécution de la requète
$data = $this->exec_cmd($reqCheckToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
// Vérifiaction de correspondance email & jeton d'auto-connection
foreach ($data as $rows) {
if ($rows["tokenAutoLogin"] == $token) {
return $rows["userId"];
}
}
}
// Mise à jour du jeton d'auto-login
final public function autologin_token_update($email, $token) {
// Préparation de la requète pour mise à jour du jeton d'auto-connection
$reqUpdateToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = ?
WHERE email = ?";
// Execution de la requète
$this->exec_cmd($reqUpdateToken, array($token, $email))->fetchAll(PDO::FETCH_ASSOC);
}
// Supression du jeton d'auto-login
final public function autologin_token_delete($email) {
// Préparation de la requète pour supression du jeton d'auto-connection
$reqDeleteToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = NULL
WHERE email = ?";
// Execution de la requète
$this->exec_cmd($reqDeleteToken, array($email))->fetchAll(PDO::FETCH_ASSOC);
}
}
?>
|