| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- require_once('MyPDO.php');
- class User {
- private $_login;
- private $_password;
- private const USER_TABLE = "Users";
- function getLogin() : string {
- return $this->_login;
- }
- function getPassword() : string {
- return $this->_password;
- }
- function setLogin(string $login) : void {
- $this->_login = $login;
- }
- function setPassword(string $password) : void {
- $this->_password = $password;
- }
- function __construct(string $login, string $password = null) {
- $this->_login = $login;
- $this->_password = $password;
- }
- function __destruct() {
- }
- function exists() : bool {
- $pdo = MyPDO::pdo();
- $req = $pdo->prepare('SELECT passwd FROM ' . self::USER_TABLE . ' WHERE login = :login');
- $req->bindValue(':login', $this->getLogin(), PDO::PARAM_STR);
- if (!$req->execute()) {
- throw new Exception('Problème requête');
- }
- if ($req->rowCount() == 0) {
- return false;
- }
- $res = $req->fetch();
- if (!password_verify($this->getPassword(), $res['passwd'])) {
- return false;
- }
- return true;
- }
- function create() : void {
- $pdo = MyPDO::pdo();
- $req = $pdo->prepare('INSERT INTO ' . self::USER_TABLE . ' (login, passwd) VALUES (:login, :passwd)');
- $req->bindValue(':login', $this->getLogin(), PDO::PARAM_STR);
- $req->bindValue(':passwd', password_hash($this->getPassword(), PASSWORD_DEFAULT), PDO::PARAM_STR);
- if (!$req->execute()) {
- throw new Exception('Problème requête');
- }
- }
- function changePassword() : void {
- $pdo = MyPDO::pdo();
- $req = $pdo->prepare('UPDATE ' . self::USER_TABLE . ' SET passwd = :passwd WHERE login = :login');
- $req->bindValue(':passwd', password_hash($this->getPassword(), PASSWORD_DEFAULT));
- $req->bindValue(':login', $this->getLogin());
- if (!$req->execute()) {
- throw new Exception('Problème requête');
- }
- }
- function delete() : void {
- $pdo = MyPDO::pdo();
- $req = $pdo->prepare('DELETE FROM Users WHERE login = :login');
- $req->bindValue(':login', $this->getLogin());
- if (!$req->execute()) {
- throw new Exception('Problème requête');
- }
- }
- }
|