public static function getUser($bdd, $hash, $pseudo = NULL, $email = NULL) { if ($pseudo) { $request = $bdd->prepare('SELECT * FROM driver WHERE pseudo = ?'); $request->execute(array($pseudo)); if ($donnees = $request->fetch()) { $salt = $donnees["salt"]; if ($donnees["hash"] == hash('sha512', $salt + $hash, false)) { $user = new User($pseudo, $donnees["hash"], $donnees["email"]); $user->setId($donnees["driver_id"]); $user->setPseudo($donnees["pseudo"]); $user->setFirstname($donnees["first_name"]); $user->setLastname($donnees["last_name"]); $user->setToken(User::generateRandomString(200)); $request = $bdd->prepare("UPDATE driver SET token=:token WHERE driver_id = :driver"); $request->execute(array('token' => $user->getToken(), 'driver' => $user->getId())); return $user; } } else { return null; } } else { if ($email) { $request = $bdd->prepare('SELECT * FROM driver WHERE email = ?'); $request->execute(array($email)); if ($donnees = $request->fetch()) { $salt = $donnees["salt"]; if ($donnees["hash"] == hash('sha512', $salt + $hash, false)) { $user = new User($donnees["pseudo"], $donnees["hash"], $email); $user->setId($donnees["id"]); $user->setFirstname($donnees["first_name"]); $user->setLastname($donnees["last_name"]); $user->setToken(generateRandomString(200)); $request = $bdd->prepare("UPDATE driver SET token=:token WHERE driver_id = :driver"); $request->execute(array('token' => $user->getToken(), 'driver' => $user->getId())); return $user; } } else { return null; } } else { return null; } } }