После подтверждения ввода данных в форму регистрации будет вызван скрипт обработки формы 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).