Просмотр файла enter.php

Размер файла: 3.93Kb
  1. <?php
  2. // coding by Felis
  3. require_once('sys/kernel.php');
  4. require_once('temp/cap.php');
  5.  
  6. switch($mode)
  7. {
  8. default:
  9. if($op == true)
  10. {
  11. header('Location: main.php'); exit;
  12. }
  13. if(!$_POST)
  14. {
  15. echo $fnc->alert('Войти', '<form action="'.CFILE.'" method="post">
  16. <input type="hidden" name="login" />
  17. <input type="hidden" name="password" />
  18. Логен:<br />
  19. <input type="text" name="_post_field_1_" /><br />
  20. Пороль:<br />
  21. <input type="password" name="_post_field_2_" /><br />
  22. <input type="checkbox" name="_post_field_3_" value="1" /> Запомнить<br />
  23. <input type="submit" value="Войти" />
  24. </form>');
  25. echo $fnc->cont2('<a href="'.CFILE.'?mode=restore">Восстановление пароля</a>');
  26. }
  27. else
  28. {
  29. $username = $fnc->out($_POST['_post_field_1_'], 1);
  30. $password = $fnc->out($_POST['_post_field_2_'], 1);
  31. $cookie = (int)$_POST['_post_field_3_'];
  32. if(empty($username))
  33. {
  34. header('Location: '.CFILE);
  35. }
  36. else
  37. {
  38. $log = $db->query("SELECT `id`,`passwd`,`banned`,`ban_point`,`ban_term`,`access` FROM `users` WHERE `login`='$username' LIMIT 1");
  39. if($log->num_rows > 0)
  40. {
  41. $pl = $log->fetch_assoc();
  42. if($fnc->encode($password) == $pl['passwd'])
  43. {
  44. if($time - $pl['ban_point'] < $pl['ban_term'] and $pl['access'] != 'a')
  45. {
  46. echo $fnc->alert('Ошибка!', 'Вы забанены в чате '.date('d '.$fnc->rm(date('m')).', H:i:s', $pl['ban_point']).' сроком на '.round($pl['ban_term'] / 60, 2).' мин!<br />Пожалуйста, ожидайте истечения срока бана..');
  47. echo $fnc->cont('<a href="main.php">На главную</a>');
  48. }
  49. else
  50. {
  51. $_SESSION['id'] = $pl['id'];
  52. $_SESSION['passwd'] = $password;
  53. if($cookie == 1)
  54. {
  55. setcookie('id', base64_encode($_SESSION['id']), time() + $sec['month']);
  56. setcookie('passwd', base64_encode($_SESSION['passwd']), time() + $sec['month']);
  57. }
  58. $db->query("UPDATE `users` SET `lastdate`=$time WHERE `id`=".$_SESSION['id']);
  59. header('Location: main.php');
  60. }
  61. }
  62. else { header('Location: '.CFILE); }
  63. }
  64. else { header('Location: '.CFILE); }
  65. }
  66. }
  67. break;
  68.  
  69. case 'logout':
  70. session_unset();
  71. session_destroy();
  72. setcookie('id', NULL);
  73. setcookie('passwd', NULL);
  74. header('Location: main.php');
  75. break;
  76. case 'restore':
  77. if(!$_POST)
  78. {
  79. echo $fnc->alert('Восстановление пароля', '<form action="'.CFILE.'?mode=restore" method="post">
  80. <!-- E-mail -->
  81. <input type="hidden" name="mail" />
  82. Введите E-mail:<br />
  83. <input type="text" name="_postfield" /><br />
  84. <input type="submit" value="Выслать" />
  85. </form>');
  86. }
  87. else
  88. {
  89. $mail = $fnc->out($_POST['_postfield'], 1);
  90. $check_user = $db->query("SELECT `id`,`login`,`mail` FROM `users` WHERE `mail`='$mail' LIMIT 1");
  91. if($check_user->num_rows > 0)
  92. {
  93. $restore = $check_user->fetch_assoc();
  94. $restore_passwd = mt_rand(1111111, 9999999);
  95. if(mail($restore['mail'], '=?utf-8?B?'.base64_encode($conf['sitename'].' - Восстановление пароля').'?=', 'Здравствуйте, '.$restore['login'].'. Ваш новый пароль в чате "'.$conf['sitename'].'" - '.$restore_passwd."\r\n" .'Приятного общения!', 'From: robot@'.ADDRESS."\r\nContent-type: text/html; charset=utf-8;\r\nX-Mailer: ".$conf['sitename']))
  96. {
  97. $db->query("UPDATE `users` SET `passwd`='".$fnc->encode($restore_passwd)."' WHERE `id`=".$restore['id']." LIMIT 1");
  98. header('Location: main.php');
  99. }
  100. else
  101. {
  102. echo $fnc->alert('Ошибка!', _ERROR);
  103. }
  104. }
  105. else
  106. {
  107. echo $fnc->alert('Ошибка!', 'Данного пользователя не существует..');
  108. }
  109. }
  110. break;
  111. }
  112.  
  113. require_once('temp/foot.php');
  114.  
  115. // конец файла ./enter.php