Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Форма регистрации

После того, как мы набираем в командной строке браузера адрес стартовой страницы нашего приложения (адрес может иметь другой вид, в зависимости от настроек сервера, на котором развернут пример), в нашем случае это: http://localhost/hytechdb_ex2/login.html, на экране появится страница с формой регистрации следующего вида (см. рис.1):

Рис. 1. Форма регистрации

Эта страница является статической. Вот ее код:

Пример:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ru" dir="ltr">   <head>     <title>Вход</title>     <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />   </head>   <body>     <form action="after_login.php" method="post">       <table border="0">         <tr>           <td>Строка соединения:</td>           <td>             <input type="text" name="host"              value="tcpip:/localhost:13000" />           </td>         </tr>         <tr>           <td>Имя пользователя:</td>           <td>             <input type="text" name="user"              value="HTADMIN" />           </td>         </tr>         <tr>           <td>Пароль:</td>           <td>             <input type="password" name="passw"              size="20" value="PASSWORD" />           </td>         </tr>       </table>       <br />       <button name="B1" type="submit">Ok</button>       <button name="B2" type="reset">Отмена</button>       <br />     </form>   </body> </html>

Скрипт формы регистрации

После подтверждения ввода данных в форму регистрации будет вызван скрипт обработки формы after_login.php. Этот скрипт указан в теге form в поле action. Скрипт обработки выглядит следующим образом:

<?php #after_login.php // стартуем сессию PHP session_start(); // сохраняем имя пользователя, пароль и строку соединения в // сессионные переменные $_SESSION[ "user" ]  = $_REQUEST["user"]; $_SESSION[ "host" ]  = $_REQUEST["host"]; $_SESSION[ "passw" ] = $_REQUEST["passw"]; // проверяем корректность входа в систему include( "check.inc" ); // в случае успешного входа // отображаем страницу для выбора таблицы из списка include( "ch_table.inc" ); ?>  

Напомним, что массив $_REQUEST содержит значения переменных, переданных в скрипт с клиенской стороны после подтверждения ввода. В нашем случае, это переменные, введенные нами в форме login.html: строка соединения, имя пользователя и пароль. Скрипт check.inc играет в данном приложении важную роль. Он вызывается всякий раз при запросе пользователем серверной страницы, проверяет наличие сессии PHP и выполняет попытку соединения с БД HyTech. В случае ошибки пользователь направляется к форме регистрации. Текст скрипта check.inc:

<?php #check.inc // проверяем не пытаемся ли выполнить скрипт повторно if( !isset($trycheck) ) {           session_start();     // проверяем, пытались ли ранее войти в систему     if( !isset($_SESSION[ "user" ]) ) {         // если нет, то переходим к регистрационной форме         include ("login.html");         exit;     } else {         // если уже были в регистрационной форме         // подключаем функции работы с БД         include ("db.inc");         // пытаемся соединиться с БД HyTech         if( !login( $_SESSION[ "host" ], $_SESSION[ "user" ],         $_SESSION[ "passw" ] ) ) {             // если соединение неудачно             // переходим снова в форму регистрации, выводя             // при этом сообщение об ошибке             $_SESSION[ "user" ] = "";                           echo "При соединении с БД  произошла ошибка<br>";             $er = hytech_errno();             echo "Номер ошибки HyTech: $er<br>";             echo "Попробуйте повторно войти в систему<br>";             include ("login.html");             exit;         }     } } $trycheck = true;   ?>

Если скрипт завершился нормально, то далее работа идет уже с подключенной БД, установленное соединение используется в последующих запросах. Перед выполнением соединения с БД скрипт check.inc включает группу функций по работе с БД (файл db.inc).