Просмотр файла modules/user/secure.php

Размер файла: 6Kb
  1. <?php
  2.  
  3. // проверка наличия авторизации
  4. if (!isset($user))
  5. {
  6. # Перенаправляем на главную
  7. header('Location: /');
  8. }
  9.  
  10. # Заголовок модуля
  11. $system['page_title'] = 'Безопасность';
  12.  
  13. # Шапка модуля
  14. require_once(HOME .'/incfiles/header.php');
  15.  
  16. // привязка к email
  17. if (isset($_POST['email']))
  18. {
  19. # E-mail
  20. $email = txt($_POST['email']);
  21. # Проверка длины логина
  22. if (!empty($email) && (strlen($email) < 3 || strlen($email) > 72)) $err .= 'Неверная длина E-Mail. Допустимо от 3 до 72 символов<br />';
  23. # Формат
  24. if (!empty($email) && !preg_match('|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})$|ius', $email)) $err .= 'Неверный формат E-Mail<br />';
  25. # Проверка занятости логина
  26. if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `email` = '". input($email) ."'"), 0) != 0) $err .= 'E-Mail ' . $email . ' занят. Выберите другой<br />';
  27. if (!isset($err))
  28. {
  29. # Сохраняем данные
  30. mysql_query("UPDATE `users` SET `email` = '". input($email) ."' WHERE `id` = '$user[id]' LIMIT 1");
  31. echo '<div class="title">Привязка к E-Mail</div>
  32. <div class="menu">
  33. Ваш аккаунт успешно привязан к E-Mail '. output($email) .'
  34. </div>';
  35. echo '<div class="block">
  36. &raquo; <a href="/user/secure.php">Безопасность</a><br />
  37. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  38. &raquo; <a href="/">На главную</a>
  39. </div>';
  40. # Ноги модуля
  41. require_once(HOME .'/incfiles/footer.php');
  42. }
  43. }
  44.  
  45. // смена пароля
  46. if (isset($_POST['change_password']))
  47. {
  48. # Старый пароль
  49. $old_password = txt($_POST['old_password']);
  50. # Проверка ввода пароля
  51. if (empty($old_password)) $err .= 'Не введен старый пароль<br />';
  52. # Шифруем старый пароль
  53. if (!isset($err)) $old_password = encrypt($old_password);
  54. # Проверяем правильность
  55. if (!empty($old_password) && $old_password != $user['password']) $err .= 'Неверный текущий пароль<br />';
  56.  
  57. # Пароль
  58. $password = txt($_POST['password']);
  59. # Проверка ввода пароля
  60. if (empty($password)) $err .= 'Не введен новый пароль<br />';
  61. # Проверка длины пароля
  62. if (!empty($password) && (strlen($password) < 5 || strlen($password) > 64)) $err .= 'Неверная длина нового пароля. Допустимо от 5 до 64 символов<br />';
  63. # Повторный пароль
  64. $password2 = txt($_POST['password2']);
  65. # Проверка ввода повторного пароля
  66. if (empty($password2)) $err .= 'Не введен повторный пароль<br />';
  67. # Проверка совпадения паролей
  68. if (!empty($password2) && $password != $password2) $err .= 'Пароли не совпадают<br />';
  69. // запись
  70. if (!isset($err))
  71. {
  72. # Кодируем пароль
  73. $password = encrypt($password);
  74. # Сохраняем данные
  75. mysql_query("UPDATE `users` SET `password` = '". input($password) ."' WHERE `id` = '$user[id]' LIMIT 1");
  76. echo '<div class="title">Изменение пароля</div>
  77. <div class="menu">
  78. Ваш пароль успешно изменен
  79. </div>';
  80. echo '<div class="block">
  81. &raquo; <a href="/user/secure.php">Безопасность</a><br />
  82. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  83. &raquo; <a href="/">На главную</a>
  84. </div>';
  85. # Ноги модуля
  86. require_once(HOME .'/incfiles/footer.php');
  87. }
  88. }
  89.  
  90. error($err);
  91.  
  92. echo '<div class="title">Смена пароля</div>
  93. <form method="post" action="/user/secure.php">
  94. <div class="menu">
  95. Текущий пароль:<br />
  96. <input type="password" name="old_password" /><br />
  97. Новый пароль:<br />
  98. <input type="password" name="password" /><br />
  99. Повторите пароль:<br />
  100. <input type="password" name="password2" /><br />
  101. <input type="submit" name="change_password" value="Изменить" />
  102. </div>
  103. </form>';
  104.  
  105. // email
  106. if (!empty($user['email']))
  107. {
  108. echo '<div class="title">Привязка к E-Mail</div>
  109. <div class="menu">
  110. Ваш аккаунт привязан к E-Mail:<br />
  111. <u>'. output($user['email']) .'</u><br />
  112. <span class="small_info">* Смена E-Mail не возможна</span><br />
  113. </div>';
  114. }
  115. else
  116. {
  117. echo '<div class="title">Привязка к E-Mail</div>
  118. <form method="post" action="/user/secure.php">
  119. <div class="menu">
  120. Для обеспечения безопасности вашего аккаунта рекомендуется привязать его к вашему почтовому ящику. В этом случае вы сможете восстановить пароль в случае, если забудете его<br />
  121. Ваш E-Mail:<br />
  122. <input type="text" name="email" /><br />
  123. <span class="small_info">* Смена E-Mail в дальнейшем будет не возможна</span><br />
  124. <input type="submit" value="Привязать" />
  125. </div>
  126. </form>';
  127. }
  128.  
  129. echo '<div class="block">
  130. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  131. &raquo; <a href="/">На главную</a>
  132. </div>';
  133.  
  134. # Ноги модуля
  135. require_once(HOME .'/incfiles/footer.php');
  136.  
  137. ?>