Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace UserAccounts\Model;
- require 'DBConnect.php';
- use \PDO;
- class Account {
- private $id;
- private $firstName;
- private $lastName;
- private $username;
- private $password;
- public function __construct($firstName, $lastName, $username, $password, $id=null) {
- $this->setFirstName($firstName);
- $this->setLastName($lastName);
- $this->setUsername($username);
- $this->setPassword($password);
- $this->setId($id);
- }
- public static function add($account) {
- // hash the password
- $hashed = password_hash($account->getPassword(),
- PASSWORD_DEFAULT);
- try {
- $db = new DBConnect();
- $conn = $db->getConnection();
- } catch (Exception $ex) {
- throw $ex;
- }
- $insertStat = $conn->prepare(
- "INSERT INTO Account(username, password, firstName, lastName)
- VALUES (:username, :password, :firstName, :lastName)");
- $insertStat->bindValue(':username', $account->getUsername());
- $insertStat->bindValue(':password', $hashed);
- $insertStat->bindValue(':firstName', $account->getFirstName());
- $insertStat->bindValue(':lastName', $account->getLastName());
- try {
- $insertStat->execute();
- } catch (Exception $ex) {
- throw $ex;
- }
- return $conn->lastInsertId();
- }
- public static function getAccount($username, $password) {
- try {
- $db = new DBConnect();
- $conn = $db->getConnection();
- } catch (Exception $ex) {
- throw $ex;
- }
- $queryStat = $conn->prepare(
- "SELECT * FROM Account WHERE username = :username");
- $queryStat->bindValue(':username', $username);
- try {
- $queryStat->execute();
- } catch (Exception $ex) {
- throw $ex;
- }
- $result = $queryStat->fetch(PDO::FETCH_OBJ);
- if ($result && password_verify($password, $result->password)) {
- return new Account(
- $result->firstName,
- $result->lastName,
- $result->username,
- $result->password);
- } else {
- return null;
- }
- }
- public static function isUsernameAvailable($username) {
- try {
- $db = new DBConnect();
- $conn = $db->getConnection();
- } catch (Exception $ex) {
- throw $ex;
- }
- $queryStat = $conn->prepare(
- "SELECT id FROM Account WHERE username = :username");
- $queryStat->bindParam(':username', $username);
- try {
- $queryStat->execute();
- } catch (Exception $ex) {
- throw $ex;
- }
- $result = $queryStat->fetch(PDO::FETCH_OBJ);
- if ($result && $result != null) {
- return false;
- }
- return true;
- }
- public function getId(){
- return $this->id;
- }
- public function setId($id){
- $this->id = $id;
- }
- public function getFirstName(){
- return $this->firstName;
- }
- public function setFirstName($firstName){
- $this->firstName = $firstName;
- }
- public function getLastName(){
- return $this->lastName;
- }
- public function setLastName($lastName){
- $this->lastName = $lastName;
- }
- public function getUsername(){
- return $this->username;
- }
- public function setUsername($username){
- $this->username = $username;
- }
- public function getPassword(){
- return $this->password;
- }
- public function setPassword($password){
- $this->password = $password;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement