Просмотр файла auth/index.php

Размер файла: 11.28Kb
  1. <?php
  2. include_once("../config.php");
  3. include_once("../connect.php");
  4. include_once("../functions.php");
  5. include_once("../users.php");
  6. ///////////////url_decode();
  7. $auth = '';
  8. $params = array();
  9. list($params['nick'], $params['pass']) = explode(":", $_SERVER['QUERY_STRING']);
  10. $params['nick'] = urldecode(trim($params['nick']));
  11. $params['nick'] = iconv("windows-1251", "UTF-8", $params['nick']);
  12. $params['nick'] = translatenick($params['nick']);
  13. if(empty($params['nick']))
  14. {
  15. $title = "Ошибка";
  16. if($version == "wml")
  17. {
  18. echo(doctype($title).'
  19. Заполните все поля! <br />
  20. <a href="../?p=0&amp;v=wml">Назад в форум</a><br />
  21. </p></card></wml>');
  22. } elseif($version == "xhtml")
  23. {
  24. echo('<html>
  25. <head>
  26. <title>'.$title.'</title>
  27. </head>
  28. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  29. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  30. <tr><td align="center" bgcolor="'.$style['title'].'">
  31. <font color="#FFFFFF"><b>'.$title.'</b></font>
  32. </td></tr>
  33. <tr bgcolor="'.$style['text'].'"><td>
  34. Вы не заполнили все поля!
  35. </td></tr>
  36. <tr><td bgcolor="'.$style['bottom'].'">
  37. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  38. </td></tr>
  39. </table></body></html>');
  40. }
  41. } elseif(!preg_match("|^[!=@\[\]\(\) -\.\_0-9a-zA-Zа-яА-Я]+$|u", $params['nick']) or strlen($params['nick']) > 15)
  42. {
  43. $title = "Ошибка";
  44. if($version == "wml")
  45. {
  46. echo(doctype($title).'
  47. Ник может содержать только знаки русского и латинского алфавита, пробел, цифры, точку(.), тире(-), восклицательный знак(!), знак равенства(=), круглые и квадратные скобки([,],(,)), сабака(@) и знак додчеркивания(_)! <br />
  48. Также количество символов в нике не может превышать 15!
  49. <a href="../p=0&amp;index.php?v=wml">Назад в форум</a><br />
  50. </p></card></wml>');
  51. } elseif($version == "xhtml")
  52. {
  53. echo('<html>
  54. <head>
  55. <title>'.$title.'</title>
  56. </head>
  57. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  58. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  59. <tr><td align="center" bgcolor="'.$style['title'].'">
  60. <font color="#FFFFFF"><b>'.$title.'</b></font>
  61. </td></tr>
  62. <tr bgcolor="'.$style['text'].'"><td>
  63. Ник может содержать только знаки русского и латинского алфавита, пробел, цифры, точку(.), тире(-), восклицательный знак(!), знак равенства(=), круглые и квадратные скобки([,],(,)), сабака(@) и знак додчеркивания(_)! <br />
  64. Также количество символов в нике не может превышать 15!
  65. </td></tr>
  66. <tr><td bgcolor="'.$style['bottom'].'">
  67. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  68. </td></tr>
  69. </table></body></html>');
  70. }
  71. } elseif(!preg_match("|^[-\._0-9a-zA-Z]+$|", $params['pass']) or strlen($params['pass']) > 15)
  72. {
  73. $title = "Ошибка";
  74. if($version == "wml")
  75. {
  76. echo(doctype($title).'
  77. Пароль может содержать только знаки латинского алфавита, цифры, точку, тире и знак додчеркивания(_)! <br />
  78. Также количество символов в пароле не может превышать 15!
  79. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  80. </p></card></wml>');
  81. } elseif($version == "xhtml")
  82. {
  83. echo('<html>
  84. <head>
  85. <title>'.$title.'</title>
  86. </head>
  87. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  88. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  89. <tr><td align="center" bgcolor="'.$style['title'].'">
  90. <font color="#FFFFFF"><b>'.$title.'</b></font>
  91. </td></tr>
  92. <tr bgcolor="'.$style['text'].'"><td>
  93. Пароль может содержать только знаки латинского алфавита, цифры, точку, тире и знак додчеркивания(_)! <br />
  94. Также количество символов в пароле не может превышать 15!
  95. </td></tr>
  96. <tr><td bgcolor="'.$style['bottom'].'">
  97. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  98. </td></tr>
  99. </table></body></html>');
  100. }
  101. } else {
  102. $arr = array(
  103. 'a','b','c','d','e','f',
  104. 'g','h','i','j','k','l',
  105. 'm','n','o','p','r','s',
  106. 't','u','v','x','y','z',
  107. 'A','B','C','D','E','F',
  108. 'G','H','I','J','K','L',
  109. 'M','N','O','P','R','S',
  110. 'T','U','V','X','Y','Z',
  111. '1','2','3','4','5','6',
  112. '7','8','9','0');
  113. $sid = $arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)].$arr[rand(0, 57)];
  114.  
  115. if(mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE username='".$params['nick']."'"), 0))
  116. {
  117. // Ник зареган. Проверяем правильность пароля.
  118. if(mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE username='".$params['nick']."' AND password='".$params['pass']."'"), 0))
  119. {
  120. // Пароль верен. Проверяем есть ли сессия с такими данными.
  121. if(mysql_result(mysql_query("SELECT COUNT(*) FROM `session` WHERE nickname='".$params['nick']."' AND password='".$params['pass']."'"), 0))
  122. {
  123. mysql_query("UPDATE `session` SET sid='".$sid."', time='".time()."' WHERE nickname='".$params['nick']."' AND password='".$params['pass']."'");
  124. } else {
  125. // Если сессия не создана, то создаем ее
  126. mysql_query("INSERT INTO `session` VALUES('".$sid."', '".$params['nick']."', '".$params['pass']."', '".time()."')");
  127. }
  128. $auth .= 1;
  129. } else {
  130. $auth .= 0;
  131. }
  132. } else
  133. {
  134. // Ник не зареган.
  135. //mysql_query("INSERT INTO `users` VALUES(0, '".$params['nick']."', '".$params['pass']."', '".time()."', 'user', ".time().", '', '', null, '', '', 'n', '', 'normal', ".$pSize.", '".$defaultst."', 'off', 0, 0, 0, '', '', '')");
  136. //mysql_query("INSERT INTO `session` VALUES('".$sid."', '".$params['nick']."', '".$params['pass']."', '".time()."')");
  137. //$auth .= 1;
  138. if($version == "wml")
  139. {
  140. header("Content-type: text/vnd.wap.wml; charset=utf-8");
  141. echo(doctype($title).'
  142.  
  143. Ошибка автологина! <br />
  144. --- <br />
  145. Пожалуйста, пройдите авторизацию вручную, чтобы зарезервировать<br />за собой ник и входить на форум через автологин.<br />
  146. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br /></p></card></wml>');
  147. } elseif($version == "xhtml")
  148. {
  149. include("../users.php");
  150. header("Content-type: text/html; charset=utf-8");
  151. echo('
  152. <html>
  153. <head>
  154. <title>'.$title.'</title>
  155. </head>
  156. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  157. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  158. <tr><td align="center" bgcolor="'.$style['title'].'">
  159. <font color="#FFFFFF"><b>'.$title.'</b></font>
  160. </td></tr>
  161. <tr bgcolor="'.$style['text'].'"><td>
  162. Ошибка автологина!
  163. </td></tr>
  164. <tr><td bgcolor="'.$style['bottom'].'">
  165. Пожалуйста, пройдите авторизацию вручную, чтобы зарезервировать<br />за собой ник и входить на форум через автологин.<br />
  166. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  167. </td></tr>
  168. </table></body></html>');
  169. exit();
  170. }
  171. }
  172.  
  173. if($auth == 1)
  174. {
  175. $title = 'Авторизация успешна';
  176. if($version == "wml")
  177. {
  178. header("Content-type: text/vnd.wap.wml; charset=utf-8");
  179. header("Cache-Control: no-cache");
  180. echo(doctype($title).'
  181. Вы успешно авторизовались! <br />
  182.  
  183. <a href="../?p=0&amp;v=wml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Вход в форум</a><br />
  184. <a href="../?p=33&amp;v=wml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Кабинет</a><br />
  185. <a href="../?p=28&amp;logout=1&amp;v=wml&amp;sid='.$sid.'">Выход</a><br />
  186. </p></card></wml>');
  187. } elseif($version == "xhtml")
  188. {
  189. $_GET['sid'] = $sid;
  190. include("users.php");
  191. header("Content-type: text/html; charset=utf-8");
  192. header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
  193. header("Cache-Control: no-cache, must-relative");
  194. echo('
  195. <html>
  196. <head>
  197. <title>'.$title.'</title>
  198. </head>
  199. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  200. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  201. <tr><td align="center" bgcolor="'.$style['title'].'">
  202. <font color="#FFFFFF"><b>'.$title.'</b></font>
  203. </td></tr>
  204. <tr bgcolor="'.$style['text'].'"><td>
  205. Вы успешно авторизовались. Теперь Вы сможете более эффективно пользоваться форумом.
  206. </td></tr>
  207. <tr><td bgcolor="'.$style['bottom'].'">
  208. <a href="../?p=0&amp;v=xhtml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Вход в форум</a><br />
  209. <a href="../?p=33&amp;v=xhtml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Кабинет</a><br />
  210. <a href="../?p=28&amp;logout=1&amp;v=xhtml&amp;sid='.$sid.'">Выход</a><br />
  211. </td></tr>
  212. </table></body></html>');
  213. }
  214. } else {
  215. $title = "Ошибка";
  216. if($version == "wml")
  217. {
  218. header('Content-type: text/vnd.wap.wml; charset=utf-8');
  219. echo(doctype($title).'К сожалению, такой ник уже зарегистрирован. <br />
  220. Пароль не верен! <br />---<br />
  221. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  222. </p></card></wml>');
  223. } elseif($version == "xhtml")
  224. {
  225. header("Content-type: text/html; charset=utf-8");
  226. echo('<html>
  227. <head>
  228. <title>'.$title.'</title>
  229. </head>
  230. <body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
  231. <table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
  232. <tr><td align="center" bgcolor="'.$style['title'].'">
  233. <font color="#FFFFFF"><b>'.$title.'</b></font>
  234. </td></tr>
  235. <tr bgcolor="'.$style['text'].'"><td>
  236. К сожалению, такой ник уже зарегистрирован. <br />
  237. Пароль не верен!
  238. </td></tr>
  239. <tr><td bgcolor="'.$style['bottom'].'">
  240. <a href="../?p=0&amp;v=xhtml">Назад в форум</a><br />
  241. </td></tr>
  242. </table></body></html>');
  243. }
  244. }
  245. }
  246.  
  247.  
  248.  
  249. ?>
  250.