auth_model.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. class auth_model extends Model {
  3. public function register($data) {
  4. $data = $this->escapeArray($data);
  5. $token = hash('ripemd160',$data['email'].$data['pass']);
  6. $check = $this->query("SELECT * FROM users WHERE username='".$data['email']."' AND status='1';");
  7. if (sizeof($check)>0) {
  8. return 'error';
  9. }
  10. else {
  11. $this->execute("INSERT INTO users SET
  12. username='".$data['email']."',
  13. pass='".hash('ripemd160',$data['pass'])."',
  14. firstname='".$data['fname']."',
  15. lastname='".$data['lname']."',
  16. email='".$data['email']."',
  17. auto_login_token='".$token."',
  18. newsletter='".$data['newsletter']."',
  19. status='2';");
  20. return $token;
  21. }
  22. }
  23. public function validate($token) {
  24. $token = $this->escapeString($token);
  25. if ($token!=='') {
  26. $check = $this->query("SELECT * FROM users WHERE auto_login_token='".$token."' AND status='2';");
  27. if (sizeof($check)>0) {
  28. $perma_token = hash('ripemd160',$check[0]->id.'_'.time());
  29. $this->execute("UPDATE users SET status='1', permanent_token='".$perma_token."' WHERE id='".$check[0]->id."';");
  30. return $perma_token;
  31. }
  32. else {
  33. return false;
  34. }
  35. }
  36. else {
  37. return false;
  38. }
  39. }
  40. public function validateSoft($token) {
  41. $token = $this->escapeString($token);
  42. if ($token!=='') {
  43. $check = $this->query("SELECT * FROM users WHERE auto_login_token='".$token."';");
  44. if (sizeof($check)>0) {
  45. $perma_token = hash('ripemd160',$check[0]->id.'_'.time());
  46. $this->execute("UPDATE users SET status='1', permanent_token='".$perma_token."' WHERE id='".$check[0]->id."';");
  47. return $perma_token;
  48. }
  49. else {
  50. return false;
  51. }
  52. }
  53. else {
  54. return false;
  55. }
  56. }
  57. public function login($user,$pass) {
  58. $user = $this->escapeString($user);
  59. $pass = $this->escapeString($pass);
  60. if ($user!=='' && $pass!=='') {
  61. $check = $this->query("SELECT * FROM users WHERE username='".$user."' AND pass='".hash('ripemd160',$pass)."' AND status='1';");
  62. if (sizeof($check)>0) {
  63. $_SESSION['userid'] = $check[0]->id;
  64. $_SESSION['username'] = $check[0]->firstname.' '.$check[0]->lastname;
  65. return true;
  66. }
  67. else {
  68. return false;
  69. }
  70. }
  71. else {
  72. return false;
  73. }
  74. }
  75. public function checkUserEmail($email) {
  76. $email = $this->escapeString($email);
  77. if ($email!=='') {
  78. $check = $this->query("SELECT * FROM users WHERE username='".$email."' AND status='1';");
  79. if (sizeof($check)>0) {
  80. return true;
  81. }
  82. else {
  83. return false;
  84. }
  85. }
  86. else {
  87. return false;
  88. }
  89. }
  90. public function getUserDataByEmail($email) {
  91. $email = $this->escapeString($email);
  92. if ($email!=='') {
  93. $check = $this->query("SELECT * FROM users WHERE username='".$email."' AND status='1';");
  94. if (sizeof($check)>0) {
  95. return $check[0];
  96. }
  97. else {
  98. return false;
  99. }
  100. }
  101. else {
  102. return false;
  103. }
  104. }
  105. public function autoLogin($permaToken) {
  106. if ($permaToken!='') {
  107. $check = $this->query("SELECT * FROM users WHERE permanent_token='".$permaToken."' AND status='1';");
  108. if (sizeof($check)>0) {
  109. $_SESSION['userid'] = $check[0]->id;
  110. $_SESSION['username'] = $check[0]->fname.' '.$check[0]->lname;
  111. setcookie('FP_token',$permaToken,time()+3600*24*365,'/');
  112. return true;
  113. }
  114. else {
  115. return false;
  116. }
  117. }
  118. else {
  119. return false;
  120. }
  121. }
  122. public function checkEmail($email) {
  123. $check = $this->query("SELECT * FROM users WHERE username='".$email."' AND status='1';");
  124. if (sizeof($check)>0) {
  125. return false;
  126. }
  127. else {
  128. return true;
  129. }
  130. }
  131. }