Просмотр файла wip-site-portal/src/reg.php

Размер файла: 11.85Kb
  1. <?
  2. require('ini.php');
  3.  
  4. $link=connect();
  5.  
  6. head('Регистрация');
  7.  
  8. @$mod=$_GET['mod'];
  9.  
  10. switch($mod){
  11. default:
  12. echo '<small><b>Регистрация:</b> шаг первый<br/>';
  13. echo '<b>Поля помеченные * обязательны для заполнения!</b><br/>';
  14. echo 'В нике можно использовать буквы латинского и русского алфавита, цифры, пробел, а также символы @, !, ), (, _ и -<br/>';
  15. echo '* Ваш ник:</small><br/>';
  16. echo '<input name="nick" type="text" maxlength="30"/><br/>';
  17. echo '<small>* Код Вашего региона/страны: <a href="help.php?mod=city">[?]</a></small><br/>';
  18. echo '<input name="region" type="text" format="*N" maxlength="3" size="3"/><br/>';
  19. echo '<small>* Введите число с картинки:</small> <img src="img.php?'.$ref.'" alt="img"/><br/>';
  20. echo '<input name="word'.$ref.'" type="text" format="*N" size="3" maxlength="2"/><br/>';
  21. echo '<small><anchor>Далее...<go href="reg.php?mod=next" method="post">';
  22. echo '<postfield name="nick" value="$(nick)"/>';
  23. echo '<postfield name="region" value="$(region)"/>';
  24. echo '<postfield name="word" value="$(word'.$ref.')"/>';
  25. echo '<postfield name="sess" value="'.$ref.'"/>';
  26. echo '</go></anchor></small><br/>';
  27. break;
  28. case 'next':
  29. $error=false;
  30. @$nick=trim(htmlspecialchars($_POST['nick'],ENT_QUOTES));
  31. @$region=intval($_POST['region']);
  32. @$word=intval($_POST['word']);
  33. @$sess=intval($_POST['sess']);
  34. if(!$nick or !$region or !$word){
  35. echo '<small><b>Вы не заполнили обязательные поля!</b><br/><anchor>Назад<prev/></anchor><br/></small>';
  36. break;
  37. }
  38. mysql_query("select id from wip_users where nick='$nick';");
  39. if(mysql_affected_rows()>0){
  40. echo '<small><b>Ник '.$nick.' уже зарегистрирован в системе!</b><br/>---<br/></small>';
  41. $error=true;
  42. }
  43. if(strlen($nick)>60){
  44. echo '<small><b>Слишком длинный ник!</b><br/>---<br/></small>';
  45. $error=true;
  46. }
  47. $nick_tmp = strtr($nick, array('а'=>'|','б'=>'|','в'=>'|','г'=>'|','д'=>'|','е'=>'|','ё'=>'|','ж'=>'|','з'=>'|','и'=>'|','й'=>'|','к'=>'|','л'=>'|','м'=>'|','н'=>'|','о'=>'|','п'=>'|','р'=>'|','с'=>'|','т'=>'|','у'=>'|','ф'=>'|','х'=>'|','ц'=>'|','ч'=>'|','ш'=>'|','щ'=>'|','ъ'=>'|','ы'=>'|','ь'=>'|','э'=>'|','ю'=>'|','я'=>'|','А'=>'|','Б'=>'|','В'=>'|','Г'=>'|','Д'=>'|','Е'=>'|','Ё'=>'|','Ж'=>'|','З'=>'|','И'=>'|','Й'=>'|','К'=>'|','Л'=>'|','М'=>'|','Н'=>'|','О'=>'|','П'=>'|','Р'=>'|','С'=>'|','Т'=>'|','У'=>'|','Ф'=>'|','Х'=>'|','Ц'=>'|','Ч'=>'|','Ш'=>'|','Щ'=>'|','Ъ'=>'|','Ы'=>'|','Ь'=>'|','Э'=>'|','Ю'=>'|','Я'=>'|'));
  48.  
  49. if (preg_match("/[^a-z0-9\@\(\)\!\-\_\|]+/i", $nick_tmp)){
  50. echo '<small><b>Запрещенные символы в нике!</b><br/>В нике можно использовать буквы русского, латинского алфавита, цифры, пробел, а также символы @, !, ), (, _ и -<br/>---<br/></small>';
  51. $error=true;
  52. }
  53. $select=mysql_query("select name from wip_regions where id='$region';");
  54. if(mysql_affected_rows()<1){
  55. echo '<small><b>Введен неверный код региона/страны!</b><br/>Список доступных кодов Вы можете посмотреть <a href="help.php?mod=city">здесь</a><br/>---<br/></small>';
  56. $error=true;
  57. }
  58. $regname=mysql_fetch_row($select);
  59. $select=mysql_query("select word from wip_regs where sess='$sess' and ip='$addr' and soft='$agent';");
  60. if(mysql_affected_rows()<1){
  61. echo '<small><b>Ошибка отображения проверочного кода!</b><br/>Возможно картинка с проверочным числом не была загружена браузером. Пожалуйста, включите в браузере отображение картинок и обновите страницу регистрации.<br/>---<br/></small>';
  62. $error=true;
  63. }
  64. $wrd=mysql_fetch_row($select);
  65. if($word!=$wrd[0]){
  66. echo '<small><b>Неверное число с картинки!</b><br/>Внимательно введите число с проверочной картинки<br/>---<br/></small>';
  67. $error=true;
  68. }
  69. if($wrd[0]) mysql_query("delete from wip_regs where sess='$sess' and ip='$addr' and soft='$agent';");
  70. if($error==true){
  71. echo '<small><anchor>Назад<prev/></anchor></small><br/>';
  72. break;
  73. }
  74. ////
  75. echo '<small><b>Регистрация:</b> шаг второй<br/>';
  76. echo '<b>Поля помеченные * обязательны для заполнения!</b><br/>---<br/>';
  77. echo '<b>Ник:</b> '.$nick.'<br/>';
  78. echo '* Пароль:<br/>Должен содержать буквы латинского алфавита и/или цифры. Не используйте простых паролей, их легко подобрать!<br/></small>';
  79. echo '<input name="pass" type="text" maxlength="20"/><br/>';
  80. echo '<small>* Настоящее имя:</small><br/>';
  81. echo '<input name="name" type="text" maxlength="30"/><br/>';
  82. echo '<small>* Пол:</small>';
  83. echo '<select name="sex">';
  84. echo '<option value="m">M</option>';
  85. echo '<option value="zh">Ж</option>';
  86. echo '</select><br/>';
  87. echo '<small>Дата Рождения:</small><br/>';
  88. echo '<input name="day" maxlength="2" format="*N" size="2"/>-';
  89. echo '<input name="month" maxlength="2" format="*N" size="2"/>-';
  90. echo '<input name="year" maxlength="4" format="*N" size="4"/><br/>';
  91. echo '<small><b>Откуда:</b> '.$regname[0].' ['.$region.']<br/>';
  92. echo 'E-mail:<br/>На этот адрес будет выслан Ваш новый пароль, если вы забудете его и запросите новый, адрес в анкете не отображается. Сменить E-mail, если Вы сейчас его введете, будет нельзя.<br/></small>';
  93. echo '<input name="mail" type="text" maxlength="50"/><br/>';
  94. echo '<small>* О себе:</small><br/>';
  95. echo '<input name="about" type="text" maxlength="300"/><br/>';
  96. echo '<small><anchor>Далее...<go href="reg.php?mod=reg" method="post">';
  97. echo '<postfield name="nick" value="'.$nick.'"/>';
  98. echo '<postfield name="name" value="$(name)"/>';
  99. echo '<postfield name="pass" value="$(pass)"/>';
  100. echo '<postfield name="sex" value="$(sex)"/>';
  101. echo '<postfield name="day" value="$(day)"/>';
  102. echo '<postfield name="month" value="$(month)"/>';
  103. echo '<postfield name="year" value="$(year)"/>';
  104. echo '<postfield name="city" value="'.$region.'"/>';
  105. echo '<postfield name="mail" value="$(mail)"/>';
  106. echo '<postfield name="about" value="$(about)"/>';
  107. echo '</go></anchor></small><br/>';
  108. break;
  109. case 'reg':
  110. $error=false;
  111. @$nick=trim(htmlspecialchars($_POST['nick'],ENT_QUOTES));
  112. @$name=trim(htmlspecialchars($_POST['name'],ENT_QUOTES));
  113. @$pass=trim(htmlspecialchars($_POST['pass'],ENT_QUOTES));
  114. @$sex=trim(htmlspecialchars($_POST['sex'],ENT_QUOTES));
  115. @$day=substr(intval($_POST['day']),0,2);
  116. @$month=substr(intval($_POST['month']),0,2);
  117. @$year=substr(intval($_POST['year']),0,4);
  118. @$city=substr(intval($_POST['city']),0,3);
  119. @$mail=trim(htmlspecialchars($_POST['mail'],ENT_QUOTES));
  120. @$about=trim(htmlspecialchars($_POST['about'],ENT_QUOTES));
  121. if(!$nick or !$pass or !$sex or !$city or !$about){
  122. echo '<small><b>Вы не заполнили обязательные поля!</b><br/><anchor>Назад<prev/></anchor><br/></small>';
  123. break;
  124. }
  125. mysql_query("select id from wip_users where nick='$nick';");
  126. if(mysql_affected_rows()>0){
  127. echo '<small><b>Ник '.$nick.' уже зарегистрирован в системе!</b><br/>---<br/></small>';
  128. $error=true;
  129. }
  130. if(strlen($nick)>60){
  131. echo '<small><b>Слишком длинный ник!</b><br/>---<br/></small>';
  132. $error=true;
  133. }
  134. if (preg_match("/[^a-z0-9\@\(\)\!\-\_]+/i",$nick)){
  135. echo '<small><b>Запрещенные символы в нике!</b><br/>В нике можно использовать буквы латинского алфавита, цифры, пробел, а также символы @, !, ), (, _ и -<br/>---<br/></small>';
  136. $error=true;
  137. }
  138. if (preg_match("/[^a-z0-9]+/i",$pass)){
  139. echo '<small><b>Запрещенные символы в пароле!</b><br/>В пароле можно использовать только буквы латинского алфавита и цифры<br/>---<br/></small>';
  140. $error=true;
  141. }
  142. $select=mysql_query("select name from wip_regions where id='$city';");
  143. if(mysql_affected_rows()<1){
  144. echo '<small><b>Введен неверный код региона/страны!</b><br/>Список доступных кодов Вы можете посмотреть <a href="help.php?mod=city">здесь</a><br/>---<br/></small>';
  145. $error=true;
  146. }
  147. $regname=mysql_fetch_row($select);
  148. if ($day and $month and $year){
  149. if ($day>31 or $day<=0 or $month<=0 or $month>12 or $year<=0 or $year<1900 or $year>=date('Y')){
  150. echo '<small><b>Неверно введена дата рождения!</b><br/>Дата Рождения должна вводится в формате ДД-ММ-ГГГГ и быть корректной. Если Вы не хотите разглашать свой возраст, можете её вообще не вводить.<br/>---<br/></small>';
  151. $error=true;
  152. }
  153. }
  154. if($sex!='m' and $sex!='zh'){
  155. echo '<small><b>Неверный ввод пола!</b><br/>---<br/></small>';
  156. $error=true;
  157. }
  158. if($mail and !eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$mail)){
  159. echo '<small><b>Неверный введён E-mail!</b><br/>---<br/></small>';
  160. $error=true;
  161. }
  162. if(strlen($about)>600){
  163. echo '<small><b>Введена слишком длинная информация о себе!</b><br/>---<br/></small>';
  164. $error=true;
  165. }
  166. if(strlen($name)>60){
  167. echo '<small><b>Введено слишком длинное настоящее имя!</b><br/>---<br/></small>';
  168. $error=true;
  169. }
  170. if($error==true){
  171. echo '<small><anchor>Назад<prev/></anchor></small><br/>';
  172. break;
  173. }
  174. $ins=mysql_query("insert into wip_users set nick='$nick', pass='".md5($pass)."', name='$name', sex='$sex', day='$day', month='$month', year='$year', city='$city', mail='$mail', about='$about', datereg='".time()."', ip='$addr', soft='$agent';");
  175. if(!$ins){
  176. echo '<small><b>Произошла внутренняя ошибка!</b><br/>Попробуйте обновить страницу, если ошибка повторится, обратитесь к администрации.</small><br/>';
  177. break;
  178. }
  179. $uid=mysql_insert_id();
  180. echo '<small>';
  181. echo 'Вы успешно зарегистрированы!<br/>';
  182. echo '---<br/>';
  183. echo '<b>Ваш UID:</b> '.$uid.'<br/>';
  184. echo '<b>Ваш ник:</b> '.$nick.'<br/>';
  185. echo '<b>Ваш пароль:</b> '.$pass.'<br/>';
  186. echo '---<br/>';
  187. echo 'Пожалуйста, хорошо запомните или запишите эти данные, они понадобятся для входа в систему.<br/>';
  188. echo 'Сейчас Вы можете ';
  189. echo '<anchor>войти в систему<go href="enter.php?'.$ref.'" method="post">';
  190. echo '<postfield name="uid" value="'.$uid.'"/>';
  191. echo '<postfield name="pass" value="'.$pass.'"/>';
  192. echo '</go></anchor></small><br/>';
  193. break;
  194. }
  195.  
  196.  
  197. echo '<small>---<br/>';
  198. echo '<a href="index.php">На главную</a></small>';
  199.  
  200. foot();
  201. mysql_close($link);
  202. ?>