/class/registration.php

https://github.com/likexx/doremichina · PHP · 285 lines · 198 code · 86 blank · 1 comment · 45 complexity · d58a5fe0159acae576a5072b2951f3a4 MD5 · raw file

  1. <?php
  2. require_once('dao.php');
  3. class Registration {
  4. const ERROR_SUCCESS = 0;
  5. const ERROR_USERNAME_EXISTS = 1;
  6. const ERROR_USERNAME_LENGTH = 2;
  7. const ERROR_PASSWORD = 3;
  8. const ERROR_MISSING_DATA = 4;
  9. const ERROR_DATABASE_CONNECTION = 5;
  10. const ERROR_EMAIL = 6;
  11. const ERROR_NOT_VALID_USER = 100;
  12. const ERROR_NO_SPECIALITY_SELECTED = 101;
  13. const ERROR_NO_CONTACT = 102;
  14. public function __construct() {
  15. }
  16. public function registerUserBasicInfo() {
  17. if (empty($_POST['username']) ||
  18. empty($_POST['password']) ||
  19. empty($_POST['nickname']) ||
  20. empty($_POST['email']) ||
  21. empty($_POST['type']) ||
  22. empty($_POST['zone']) ||
  23. empty($_POST['area'])) {
  24. return self::ERROR_MISSING_DATA;
  25. }
  26. $username = $_POST['username'];
  27. $password = $_POST['password'];
  28. $nickname = $_POST['nickname'];
  29. $email = $_POST['email'];
  30. $type = $_POST['type'];
  31. $zone = $_POST['zone'];
  32. $area = $_POST['area'];
  33. $username = htmlentities(trim($username),ENT_QUOTES, "UTF-8");
  34. $nickname = htmlentities(trim($nickname),ENT_QUOTES, "UTF-8");
  35. $userLen = strlen($username);
  36. $nickLen = strlen($nickname);
  37. if ($nickLen == 0) {
  38. $nickname=$username;
  39. $nickLen = $userLen;
  40. }
  41. if($userLen>20 || $userLen<4 || $nickLen>20 || $nickLen<4) {
  42. return self::ERROR_USERNAME_LENGTH;
  43. }
  44. $len = strlen($email);
  45. if ($len > 20 || $len < 4 || strpos($email, '@')==false) {
  46. return self::ERROR_EMAIL;
  47. }
  48. if(strlen($password)>20 || strlen($password)<4) {
  49. return self::ERROR_PASSWORD_LENGTH;
  50. }
  51. // no need to validate password if they are encrypted
  52. $passwordHash = md5($password);
  53. $conn = mysql_connect(DAO::SERVER, DAO::USER, DAO::PASSWORD);
  54. mysql_select_db(DAO::DATABASE, $conn);
  55. $sql = "select id from user_basic where username='$username'";
  56. $result = mysql_query($sql, $conn);
  57. $rows = mysql_num_rows($result);
  58. if ($rows > 0) {
  59. mysql_close($conn);
  60. return self::ERROR_USERNAME_EXISTS;
  61. }
  62. $sql="INSERT INTO user_basic (username, nickname, logintype, password, email, type, zone, area) VALUES ('$username','$nickname','0','$passwordHash','$email','$type','$zone','$area')";
  63. mysql_query($sql,$conn);
  64. $uid = mysql_insert_id();
  65. error_log('uid: ' . $uid);
  66. setcookie('userId', $uid, time()+3600*24*30);
  67. mysql_close($conn);
  68. return self::ERROR_SUCCESS;
  69. }
  70. public function updateUserBasicInfo() {
  71. if (empty($_POST['nickname']) ||
  72. empty($_POST['email'])) {
  73. return self::ERROR_MISSING_DATA;
  74. }
  75. error_log("updateUserBasicInfo");
  76. $password = $_POST['password'];
  77. $nickname = $_POST['nickname'];
  78. $email = $_POST['email'];
  79. $zone = $_POST['zone'];
  80. $area = $_POST['area'];
  81. $nickname = htmlentities(trim($nickname),ENT_QUOTES, "UTF-8");
  82. $nickLen = strlen($nickname);
  83. if($nickLen>20 || $nickLen<4) {
  84. return self::ERROR_USERNAME_LENGTH;
  85. }
  86. $len = strlen($email);
  87. if ($len > 20 || $len < 4 || strpos($email, '@')==false) {
  88. return self::ERROR_EMAIL;
  89. }
  90. $password = null;
  91. if (!empty($_POST['password'])) {
  92. $value = $_POST['password'];
  93. $len = strlen($value);
  94. if($len>0 && ($len>20 || $len<4)) {
  95. return self::ERROR_PASSWORD_LENGTH;
  96. }
  97. if ($len>0) {
  98. $password = md5($value);
  99. }
  100. }
  101. $sql = "update user_basic set nickname='$nickname',email='$email'";
  102. if ($password!=null) {
  103. $sql = $sql . ",password='$password'";
  104. }
  105. if ($zone!=0 && $area!=0) {
  106. $sql = $sql . ",zone='$zone',area='$area'";
  107. }
  108. $uid = $_COOKIE['userId'];
  109. $sql = $sql . " where id='$uid'";
  110. error_log($sql);
  111. $conn = mysql_connect(DAO::SERVER, DAO::USER, DAO::PASSWORD);
  112. mysql_select_db(DAO::DATABASE, $conn);
  113. mysql_query($sql, $conn);
  114. mysql_close($conn);
  115. return self::ERROR_SUCCESS;
  116. }
  117. public function registerTeacherInfo() {
  118. $currentUserId = $_COOKIE['userId'];
  119. if($currentUserId < 1) {
  120. return self::ERROR_NOT_VALID_USER;
  121. }
  122. $realname = empty($_POST['realname']) ? null : $_POST['realname'];
  123. $occupation = empty($_POST['occupation']) ? null : $_POST['occupation'];
  124. $mobileNumber = empty($_POST['mobile_number']) ? null : $_POST['mobile_number'];
  125. $phoneNumber = empty($_POST['phone_number']) ? null : $_POST['phone_number'];
  126. $qq = empty($_POST['qq']) ? null : $_POST['qq'];
  127. $spec1 = empty($_POST['speciality_1']) ? null : $_POST['speciality_1'];
  128. $spec2 = empty($_POST['speciality_2']) ? null : $_POST['speciality_2'];
  129. $spec3 = empty($_POST['speciality_3']) ? null : $_POST['speciality_3'];
  130. $school1 = empty($_POST['school_1']) ? null : $_POST['school_1'];
  131. $degree1 = empty($_POST['degree_1']) ? null : $_POST['degree_1'];
  132. $gradyear1 = empty($_POST['gradyear_1']) ? null : $_POST['gradyear_1'];
  133. $school2 = empty($_POST['school_2']) ? null : $_POST['school_2'];
  134. $degree2 = empty($_POST['degree_2']) ? null : $_POST['degree_2'];
  135. $gradyear2 = empty($_POST['gradyear_2']) ? null : $_POST['gradyear_2'];
  136. $school3 = empty($_POST['school_3']) ? null : $_POST['school_3'];
  137. $degree3 = empty($_POST['degree_3']) ? null : $_POST['degree_3'];
  138. $gradyear3 = empty($_POST['gradyear_3']) ? null : $_POST['gradyear_3'];
  139. $additionalInfo = empty($_POST['additional_info']) ? null : $_POST['additional_info'];
  140. if ($spec1 == null && $spec2==null && $spec3==null) {
  141. return self::NO_SPECIALITY_SELECTED;
  142. }
  143. if ($mobileNumber==null && $phoneNumber==null && $qq==null) {
  144. return self::NO_CONTACT;
  145. }
  146. $realname = htmlentities(trim($realname),ENT_QUOTES, "UTF-8");
  147. if(strlen($realname)>20) {
  148. return self::ERROR_USERNAME_LENGTH;
  149. }
  150. $sql = "insert into teacher_info values ('$currentUserId','$realname','$occupation','$mobileNumber','$phoneNumber','$qq','$spec1','$spec2','$spec3','$school1','$degree1','$gradyear1','$school2','$degree2','$gradyear2','$school3','$degree3','$gradyear3','$additionalInfo')";
  151. $conn = mysql_connect(DAO::SERVER, DAO::USER, DAO::PASSWORD);
  152. mysql_select_db(DAO::DATABASE, $conn);
  153. mysql_query($sql,$conn);
  154. mysql_close($conn);
  155. return self::ERROR_SUCCESS;
  156. }
  157. public function updateTeacherInfo() {
  158. $uid = $_COOKIE['userId'];
  159. if($uid < 1) {
  160. return self::ERROR_NOT_VALID_USER;
  161. }
  162. $realname = $_POST['realname'];
  163. $occupation = $_POST['occupation'];
  164. $mobileNumber = $_POST['mobile_number'];
  165. $phoneNumber = $_POST['phone_number'];
  166. $qq = $_POST['qq'];
  167. $spec1 = $_POST['speciality_1'];
  168. $spec2 = $_POST['speciality_2'];
  169. $spec3 = $_POST['speciality_3'];
  170. $school1 = $_POST['school_1'];
  171. $degree1 = $_POST['degree_1'];
  172. $gradyear1 = $_POST['gradyear_1'];
  173. $school2 = $_POST['school_2'];
  174. $degree2 = $_POST['degree_2'];
  175. $gradyear2 = $_POST['gradyear_2'];
  176. $school3 = $_POST['school_3'];
  177. $degree3 = $_POST['degree_3'];
  178. $gradyear3 = $_POST['gradyear_3'];
  179. $info = $_POST['info'];
  180. if ($spec1 == null && $spec2==null && $spec3==null) {
  181. return self::NO_SPECIALITY_SELECTED;
  182. }
  183. if ($mobileNumber==null && $phoneNumber==null && $qq==null) {
  184. return self::NO_CONTACT;
  185. }
  186. $realname = htmlentities(trim($realname),ENT_QUOTES, "UTF-8");
  187. if(strlen($realname)>20) {
  188. return self::ERROR_USERNAME_LENGTH;
  189. }
  190. $sql = "update teacher_info set realname='$realname',occupation='$occupation',mobilenumber='$mobileNumber',phonenumber='$phoneNumber',qq='$qq',speciality1='$spec1',speciality2='$spec2',speciality3='$spec3',school1='$school1',degree1='$degree1',gradyear1='$gradyear1',school2='$school2',degree2='$degree2',gradyear2='$gradyear2',school3='$school3',degree3='$degree3',gradyear3='$gradyear3',info='$info'" .
  191. " where id='$uid'";
  192. $conn = mysql_connect(DAO::SERVER, DAO::USER, DAO::PASSWORD);
  193. mysql_select_db(DAO::DATABASE, $conn);
  194. mysql_query($sql,$conn);
  195. mysql_close($conn);
  196. return self::ERROR_SUCCESS;
  197. }
  198. }
  199. ?>