Advertisement
Husam1093

Untitled

May 13th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.87 KB | None | 0 0
  1. <?php
  2. include_once('connection.php');
  3. class User{
  4.  
  5. /* const ERROR_USERNAME_TAKEN= 1;
  6. const ERROR_GENERAL= 2;
  7. const ERROR_OK= 0;*/
  8.  
  9. private $db;
  10. private $userName;
  11. private $password;
  12. private $book_id;
  13.  
  14. private $isAuthenticated;
  15. private $signUp;
  16. private $deleteBooks;
  17. // private $validationError;
  18.  
  19. public function __construct()
  20. {
  21. $this->db = (new connection())->dbConnect();
  22. }
  23.  
  24. public function setUserName($username)
  25. {
  26. $this->userName= $username;
  27. }
  28.  
  29. public function setPassword($password)
  30. {
  31. $this->password= $password;
  32. }
  33.  
  34. public function setBookId($book_id)
  35. {
  36. $this->book_id= $book_id;
  37. }
  38.  
  39. public function getUserName()
  40. {
  41. return $this->username;
  42. }
  43. public function getPassword()
  44. {
  45. return $this->password;
  46. }
  47.  
  48. public function getBookId()
  49. {
  50. return $this->book_id;
  51. }
  52. /* public function getErrorInfo()
  53. {
  54.  
  55. $errorDescription= "";
  56.  
  57. switch($this->validationError){
  58. case self::ERROR_USERNAME_TAKEN:
  59. $errorDescription= "YOur username is already taken";
  60.  
  61. break;
  62.  
  63. default:
  64. $errorDescription= "UNKNOWN ERROR";
  65. break;
  66. }
  67.  
  68. return $info= array("code" => $this->validationError, "message" => $errorDescription );
  69. }*/
  70. //-------------------------------------------------------------------
  71. public function isAuthenticated()
  72. {
  73. $query = "SELECT 1 FROM loginUser WHERE username = :username AND password = :password";
  74. $statment = $this->db->prepare($query);
  75.  
  76. $statment->execute(
  77. array(
  78. ':username' => $this->username,
  79. ':password' => $this->Password
  80. ));
  81. $result = $statment->fetchColumn();
  82.  
  83. $this->isAuthenticated= ($result == "1");
  84. return $this->isAuthenticated;
  85.  
  86. }
  87.  
  88. //-------------------------------------------------------------------
  89.  
  90. public function getBooks($start = 0, $limit = 2)
  91. {
  92. $sql_start = $start * $limit;
  93. $sql_limit = $limit;
  94.  
  95. $query = "SELECT Library.nameOfBook, userBook.book_id, userBook.user_id FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username ORDER BY Library.nameOfBook ASC LIMIT $sql_start, $sql_limit";
  96. $statment = $this->db->prepare($query);
  97. $statment->execute([
  98. ':username' => $this->username
  99. ]);
  100. $result = $statment->fetchAll();
  101.  
  102. echo "<table id='myTable' border='1'>
  103.  
  104. <tr>
  105. <th><a onclick='sortTable(1)' href='#'>Books</a></th>
  106. <th>Action</th>
  107. </tr>";
  108. foreach($result as $row){
  109. echo "<tr>";
  110. echo "<td>" . $row['nameOfBook'] . "</td>";
  111. echo "<td>" ."<input type='submit' id='delete".$row['book_id']."-".$row['user_id']."' onclick='deleteBook(this)' name='delete' value='Delete'>" . "</td>";
  112. echo "</tr>";
  113. }
  114.  
  115. echo "</table>";
  116. echo "";
  117.  
  118. }
  119.  
  120.  
  121.  
  122. //-------------------------------------------------------------------
  123. public function deleteBook($book_id, $user_id)
  124. {
  125. //echo "book_id is " . $book_id . ", user_id is " . $user_id;
  126. $stmt = $this->db->prepare("DELETE FROM userBook WHERE book_id = :book_id AND user_id = :user_id");
  127. if(!$stmt) echo $this->db->errorInfo();
  128. $stmt->bindValue(":book_id", $book_id);
  129. $stmt->bindValue(":user_id", $user_id);
  130. return $stmt->execute();
  131. }
  132.  
  133.  
  134.  
  135. //-------------------------------------------------------------------
  136.  
  137.  
  138. public function signUp(&$errorInfo)
  139. {
  140.  
  141. $statment = $this->db->prepare("SELECT COUNT(*) AS count FROM `loginUser` WHERE username=:username");
  142. $statment->execute(array(':username' => $this->username));
  143.  
  144. if ($row = $statment->fetch(PDO::FETCH_ASSOC)) {
  145. $username_count = $row["count"];
  146. }
  147.  
  148. if ($username_count > 0) {
  149. /* $this->validationError= self::ERROR_USERNAME_TAKEN;
  150. return false;*/
  151.  
  152. echo "This user already taken";
  153. }
  154. else{ $statment = $this->db->prepare("INSERT INTO loginUser (username, password) VALUES(:username, :password)");
  155.  
  156. $statment->bindParam(':username',$this->username);
  157. $statment->bindParam(':password',$this->Password);
  158.  
  159.  
  160. $statment->execute();
  161. $result = $statment->rowCount();
  162. $this->signUp= ($result == "1");
  163. return $this->signUp;
  164. }
  165. }
  166.  
  167. }
  168. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement