
Если администратор примет решение изменить пароль, то для этого достаточно выбрать соответствующую опцию меню администрирования.

Эта форма сгенерирована сценарием change_passwordd_form.php. Он достаточно прост и использует лишь функции библиотеки вывода.
Сценарий change_password_form.php — выводит форму для смены пароля
<?php
              require_once("book_sc_fns.php");
              session_start();
              $pagename = "Изменение пароля администратора";
              $keywords= "";
              $description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
              do_html_header($pagename, $keywords, $description);
              echo "<section class=blok>";
              echo "<div class=col1>";
              echo "<header>";
              echo "<h5>Меню администратора</h5>";
              echo "</header>";
              echo "<nav>";
              if (check_admin_user())
              display_admin_menu();
              else
              echo 'У вас нет прав для доступа на страницу администрирования.';
              echo "</nav>";
              echo "</div>";
              echo "<div class=col2>";
              echo "<header>";
              echo "<h2>$pagename</h2>";
              echo "</header>";
              echo "<div class=login>";
              check_admin_user();
              
              display_password_form();echo "</div>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
Функция display_password_form() из библиотеки admin_fns.php выводящая форму изменения пароля
<?php
              function display_password_form(){
// Выводит HTML-форму изменения пароля
?>
<br />
<form action="change_password.php" method="post">
<table>
<tr><td>Старый пароль:</td>
<td><input type="password" name="old_passwd" size=16 maxlength=16></td>
</tr>
<tr><td>Новый пароль:</td>
<td><input type="password" name="new_passwd" size=16 maxlength=16></td>
</tr>
<tr><td>Подтверждение нового пароля:</td>
<td><input type="password" name="new_passwd2" size=16 maxlength=16></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Изменить пароль">
</td>
</tr>
</table>
<br />
<?php
};
?>
После отправки формы запускается на выполнение сценарий change_password.php.
change_password.php — сценарий смены паролей
<?php
              require_once('book_sc_fns.php');
              session_start();
              do_html_header('Изменение пароля');
              check_admin_user();
              if (!filled_out($_POST))
              {
              echo 'Вы заполнили не все поля формы. Пожалуйста, повторите попытку.';
              do_html_url('admin.php', 'Назад в меню администрирования');
              do_html_footer();
              exit;
              }
              else
              {
              $new_passwd = $_POST['new_passwd'];
              $new_passwd2 = $_POST['new_passwd2'];
              $old_passwd = $_POST['old_passwd'];
              if ($new_passwd!=$new_passwd2)
              echo 'Введенные пароли не совпадают. Пароль не изменен.';
              else if (strlen($new_passwd)>16 || strlen($new_passwd)<6)
              echo 'Новый пароль должен содержать не менее 6 символов. Повторите попытку.';
              else
              {
              // попытка изменения
              if (change_password($_SESSION['admin_user'], $old_passwd, $new_passwd))
              echo 'Пароль изменен.';
              else
              echo 'Невозможно изменить пароль.';
              }
              
              
              }
              do_html_url('admin.php', 'Назад в меню администрирования');
              do_html_footer();
              ?>
            Этот сценарий проверяет, вошел ли администратор в систему (с помощью функции check_admin_user()), заполнил ли он форму ввода пароля (с использованием filled_out()), введены ли в обоих полях одинаковые пароли и является ли длина паролей допустимой. Если все правильно, вызывается функция change_password() из библиотеки user_auth_fns.php:
if (change_password($_SESSION['admin_user'], $old_passwd, $new_passwd));
            echo 'Пароль изменен.'
Функция change_password() из библиотеки user_auth_fns.php — предпринимает попытку обновления пароля в базе данных
<?php
              function change_password($username, $old_password, $new_password)
              // Изменяет пароль для username с old_password на new_password.
              //Возвращает true или false
              {
              // Если старый пароль корректен,
              // изменить его на новый пароль (new_password) и вернуть true.
              // В противном случае вернуть false
              if (login($username, $old_password))
              {
              if (!($conn = db_connect()))
              return false;
              $result = $conn->query( "update admin
              set password = sha1('$new_password')
              where username = '$username'");
              if (!$result)
              return false; // не изменен
              else
              return true; // успешно изменен
              }
              else
              return false; // неправильный старый пароль
              }
              ?>
            Эта функция проверяет правильность ввода прежнего пароля с помощью уже рассмотренной функции login(). Если пароль указан верно, функция соединяется с базой данных и обновляет пароль новым значением.
Щелчок по кнопке Выход приводит к вызову сценария logout.php.
logout.php — сценарий завершающий сеанс администратора
<?php
              
              // Включить библиотеки функций для этого приложения
              require_once('book_sc_fns.php');
              session_start();
              $old_user = $_SESSION['admin_user']; // сохранить для проверки, был ли уже зарегистрирован посетитель
              unset($_SESSION['admin_user']);
              session_destroy();
              
              // Начать вывод html-кода
              do_html_header('Выход');
              $pagename = "Выход";
              $keywords= "";
              $description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
              do_html_header($pagename, $keywords, $description);
              echo "<section class=blok>";
              echo "<div class=col1>";
              echo "<header>";
              echo "<h5>Меню администратора</h5>";
              echo "</header>";
              echo "<nav>";
              // Извлечь категории из базы данных
              $cat_array = get_categories();
              display_categories($cat_array);
              echo "</nav>";
              echo "</div>";
              echo "<div class=col2>";
              echo "<header>";
              echo "<h2>$pagename</h2>";
              echo "</header>";
              echo "<article>";
              if (!empty($old_user))
              {
              echo 'Успешный выход.<br />';
              do_html_url('login.php', 'Вход');
              }
              else
              {
              // Если кто-то не входил в систему, но каким-то образом попал на эту страницу
              echo 'Вы не входили в систему, поэтому и выходить из нее не нужно.<br />';
              do_html_url('login.php', 'Вход');
              }
              echo "</article>";
              echo "</div>";
              echo"</section>";
              do_html_footer();
              
              ?>
             
               
               
               
               
              
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться