PageRenderTime 56ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/core/functions/users.php

https://bitbucket.org/ivanab/register_login_system
PHP | 226 lines | 153 code | 33 blank | 40 comment | 15 complexity | 53b436e14cc4bd8ffb0ea5a176a38255 MD5 | raw file
  1. <?php
  2. function change_profile_image($user_id, $file_temp, $file_extn) {
  3. // $file_name = substr(md5(time()), 0, 10) . '.' . $file_extn;
  4. $file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn;
  5. // echo $file_name;
  6. // echo $file_path;
  7. move_uploaded_file($file_temp, $file_path);
  8. mysql_query("UPDATE `users`
  9. SET `profile` = '" . mysql_real_escape_string($file_path) . "'
  10. WHERE `user_id` = " . (int)$user_id);
  11. }
  12. function mail_users($subject, $body) {
  13. $query = mysql_query("SELECT `email`, `first_name`
  14. FROM `users`
  15. WHERE `allow_email` = 1");
  16. while (($row = mysql_fetch_assoc($query)) !== false) {
  17. // $body = "Hello " . $row['first_name'] . ",\n\n" . $body;
  18. email($row['email'], $subject, "Hello " . $row['first_name'] . ",\n\n" . $body);
  19. }
  20. }
  21. // function is_admin($user_id) {
  22. // $user_id = (int)$user_id;
  23. // $query = mysql_query("SELECT COUNT(`user_id`)
  24. // FROM `users`
  25. // WHERE `user_id` = $user_id
  26. // AND `type` = 1");
  27. // return (mysql_result($query, 0) == 1) ? true : false;
  28. // }
  29. function has_access($user_id, $type) {
  30. $user_id = (int)$user_id;
  31. $type = (int)$type;
  32. $query = mysql_query("SELECT COUNT(`user_id`)
  33. FROM `users`
  34. WHERE `user_id` = $user_id
  35. AND `type` = $type");
  36. return (mysql_result($query, 0) == 1) ? true : false;
  37. }
  38. function recover($mode, $email) {
  39. $mode = sanitize($mode);
  40. $email = sanitize($email);
  41. $user_data = user_data(user_id_from_email($email), 'user_id', 'first_name', 'username');
  42. if ($mode == 'username') {
  43. // recover username
  44. email($email, 'Your username', "Hello " . $user_data['first_name'] . ",\n\nYour username is: " . $user_data['username'] . "\n\n-sparklet");
  45. } else if ($mode == 'password'){
  46. // recover password
  47. $generated_password = substr(md5(rand(999, 999999)), 0, 8);
  48. // die($generated_password);
  49. change_password($user_data['user_id'], $generated_password);
  50. update_user($user_data['user_id'], array('password_recover' => '1'));
  51. email($email, 'Your password recovery', "Hello " . $user_data['first_name'] . ",\n\nYour new password is: " . $generated_password . "\n\n-sparklet");
  52. }
  53. }
  54. function update_user($user_id, $update_data) {
  55. // global $session_user_id;
  56. $update = array();
  57. array_walk($update_data, 'array_sanitize');
  58. foreach($update_data as $field=>$data) {
  59. $update[] = ' `' . $field . '` = \'' . $data . '\'';
  60. }
  61. // print_r($update);
  62. // echo implode(', ', $update);
  63. // die();
  64. // option with global:
  65. // mysql_query("UPDATE `users` SET " . implode(', ', $update) . " WHERE `user_id` = $session_user_id");
  66. // option without global:
  67. // mysql_query("UPDATE `users` SET " . implode(', ', $update) . " WHERE `user_id` = " . $_SESSION['user_id']) or die(mysql_error());
  68. // option with $user_id
  69. mysql_query("UPDATE `users` SET " . implode(', ', $update) . " WHERE `user_id` = $user_id");
  70. }
  71. function activate($email, $email_code) {
  72. $email = mysql_real_escape_string($email);
  73. $email_code = mysql_real_escape_string($email_code);
  74. // query to update user active status
  75. $query = mysql_query("SELECT COUNT(`user_id`)
  76. FROM `users`
  77. WHERE `email` = '$email'
  78. AND `email_code` = `$email_code`
  79. AND `active` = 0");
  80. // if (mysql_result($query, 0) == 1) {
  81. // changed 1 to 0
  82. if (mysql_result($query, 0) == 0) {
  83. mysql_query("UPDATE `users` SET `active` = 1
  84. WHERE `email` = '$email'");
  85. return true;
  86. } else {
  87. return false;
  88. }
  89. }
  90. function change_password($user_id, $password) {
  91. $user_id = (int)$user_id;
  92. $password = md5($password);
  93. mysql_query("UPDATE `users`
  94. SET `password` = '$password',
  95. `password_recover` = 0
  96. WHERE `user_id` = $user_id");
  97. }
  98. function register_user($register_data) {
  99. array_walk($register_data, 'array_sanitize');
  100. $register_data['password'] = md5($register_data['password']);
  101. // print_r($register_data);
  102. $fields = '`' . implode('`, `', array_keys($register_data)) . '`';
  103. // echo $data;
  104. $data = '\'' . implode('\', \'', $register_data) . '\'';
  105. // echo $fields;
  106. // echo "INSERT INTO `users` ($fields) VALUES ($data)";
  107. // die();
  108. mysql_query("INSERT INTO `users` ($fields) VALUES ($data)");
  109. email($register_data['email'], 'Activate your account', "
  110. Hello " . $register_data['first_name'] . ",\n\n
  111. You need to activate your account, so use the link below:\n\n
  112. http://http://starttutorials.local/phpacademy/register_login/activate.php?email=" . $register_data['email'] . "&email_code" . $register_data['email_code'] . "\n\n
  113. link
  114. - sparklet
  115. ");
  116. }
  117. function user_count() {
  118. $query = mysql_query("SELECT COUNT(`user_id`)
  119. FROM `users`
  120. WHERE `active` = 1");
  121. return mysql_result($query, 0);
  122. }
  123. function user_data($user_id) {
  124. $data = array();
  125. $user_id = (int) $user_id;
  126. $func_num_args = func_num_args();
  127. $func_get_args = func_get_args();
  128. // print_r($func_get_args);
  129. if ($func_num_args > 1) {
  130. unset($func_get_args[0]);
  131. $fields = '`' . implode('`, `', $func_get_args) . '`';
  132. // echo "SELECT $fields
  133. // FROM `users`
  134. // WHERE `user_id`=$user_id";
  135. // die();
  136. $query = mysql_query("SELECT $fields
  137. FROM `users`
  138. WHERE `user_id`=$user_id");
  139. $data = mysql_fetch_assoc($query);
  140. // print_r($data);
  141. // die();
  142. return $data;
  143. }
  144. // print_r($func_get_args);
  145. }
  146. function logged_in() {
  147. return (isset($_SESSION['user_id'])) ? true : false;
  148. }
  149. function user_exists($username) {
  150. $username = sanitize($username);
  151. $query = mysql_query("SELECT COUNT(`user_id`)
  152. FROM `users`
  153. WHERE `username`='$username'");
  154. return (mysql_result($query, 0) == 1) ? true : false;
  155. }
  156. function email_exists($email) {
  157. $email = sanitize($email);
  158. $query = mysql_query("SELECT COUNT(`user_id`)
  159. FROM `users`
  160. WHERE `email`='$email'");
  161. return (mysql_result($query, 0) == 1) ? true : false;
  162. }
  163. function user_active($username) {
  164. $username = sanitize($username);
  165. $query = mysql_query("SELECT COUNT(`user_id`)
  166. FROM `users`
  167. WHERE `username`='$username' AND `active`= 1");
  168. return (mysql_result($query, 0) == 1) ? true : false;
  169. }
  170. function user_id_from_username($username) {
  171. $username = sanitize($username);
  172. $query = mysql_query("SELECT `user_id`
  173. FROM `users`
  174. WHERE `username`='$username'");
  175. return mysql_result($query, 0, 'user_id');
  176. }
  177. function user_id_from_email($email) {
  178. $email = sanitize($email);
  179. $query = mysql_query("SELECT `user_id`
  180. FROM `users`
  181. WHERE `email`='$email'");
  182. return mysql_result($query, 0, 'user_id');
  183. }
  184. function login($username, $password) {
  185. $user_id = user_id_from_username($username);
  186. $username = sanitize($username);
  187. $password = md5($password);
  188. $query = mysql_query("SELECT COUNT(`user_id`)
  189. FROM `users`
  190. WHERE `username`='$username' AND `password`='$password'");
  191. return (mysql_result($query, 0) == 1) ? $user_id : false;
  192. }
  193. ?>