Username ou Adresse mail de l'utilisateur * @password Password de l'utilisateur * * @return id_user Retourne l'id de l'utilisateur si ses credentials sont bons * */ public static function login($login, $password){ /* [0] Gestion des INPUT =========================================================*/ $checker = Checker::run('varchar(3,50)', $login); $checker = $checker && Checker::run('text', $password); // Si les parametres sont incorrects, on retourne une erreur if( !$checker ) return false; /* [1] On verifie son login/password dans la BDD =========================================================*/ $check = DatabaseDriver::getPDO()->prepare("SELECT id_user, login FROM users WHERE ( login = :username OR mail = :mail ) AND password = :password"); $check->execute(array( ':username' => $login, ':mail' => $login, ':password' => sessionManager::sha1($password) )); $result = $check->fetch(); /* [2] Gestion du retour =========================================================*/ // Si on a rien trouve, on retourne une erreur if( $result === false ) return false; // On retourne le resultat return DatabaseDriver::delNumeric( $result ); } /* CREE UN UTILISATEUR * * @login Login (identifiant) de l'utilisateur * @password Password de l'utilisateur * @mail Adresse mail de l'utilisateur * * @return id_user Renvoie l'id de l'utilisateur cree ou FALSE si erreur * */ public static function create($login, $password, $mail){ /* [0] Verification et formattage des INPUT =========================================================*/ $checkInput = Checker::run('hash', $password); $checkInput = $checkInput && Checker::run('varchar(3, 30)', $login); $checkInput = $checkInput && Checker::run('mail', $mail); // Si erreur en entree, on retourne FAUX if( !$checkInput ) return false; /* [1] On verifie que le login/mail et reference sont uniques =========================================================*/ $checkUnique = DatabaseDriver::getPDO()->prepare("SELECT id_user FROM users WHERE login = :login OR mail = :mail "); $checkUnique->execute(array( ':login' => $login, ':mail' => $mail )); // Si un utilisateur a le meme LOGIN/MAIL ou REFERENCE qu'un autre, on retourne une erreur if( $checkUnique->fetch() !== false ) return false; /* [2] Creation de l'utilisateur =========================================================*/ $create = DatabaseDriver::getPDO()->prepare("INSERT INTO users(id_user, login, password, mail) VALUES(DEFAULT, :login, :password, :mail)"); $create->execute(array( ':login' => $login, ':password' => $password, ':mail' => $mail )); /* [3] Verification de la creation + recuperation id =========================================================*/ $checkCreate = DatabaseDriver::getPDO()->prepare("SELECT id_user FROM users WHERE login = :login AND password = :password AND mail = :mail"); $checkCreate->execute(array( ':login' => $login, ':password' => $password, ':mail' => $mail )); // On recupere l'id de l'utilisateur $id_user = $checkCreate->fetch(); // Si erreur, on retourne FALSE if( $id_user === false ) return false; /* [4] Gestion du retour =========================================================*/ return $id_user['id_user']; } /* SUPRESSION D'UN UTILISATEUR D'ID DONNE * * @id_user UID de l'utilisateur en question * */ public static function remove($id_user){ /* [1] On effectue la suppression =========================================================*/ $getUser = DatabaseDriver::getPDO()->prepare("DELETE FROM users WHERE id_user = :id_user"); $getUser->execute(array( ':id_user' => $id_user )); } } ?>