Аргерих Л. О языке РНР. Часть 5. Страница 5


Наконец, в этой функции мы выполняем запрос и затем проверяем, возвра­тил ли он какие-нибудь строки. Если возвращенных строк нет, мы очищаем окно результатов с помощью метода clear(), а затем помещаем текст No Re­sults в первую колонку. Если есть результаты, которые можно показать, мы обходим все результаты, добавляя каждый в экземпляр GtkCList с помощью метода append (), который принимает массив значений для строки:

Sresult = mysql_query($sql) or die(mysql_error()); if (! mysql_num_rows($result)) {

$no_results = arrayC'No Results.", "", "", .............. , "", "");

$widgets['search']['result_list']->clear();

$widgets['search']['result_list']->prepend($no_results);

mD else 1

$widgets['search']['result_list']->clear(); while (f.rcw = mysql_fetch_array($result)) { $insert_array = array($row['book_title'], $row['auth_name'], $row[' ISBN' ], $row[' book_series' ], $ row[' num_of^books' ], number_format($row[ 'price'], 2)); $widgets['search'][' result_list']->append($insert_array);

>

>

}

Функция dotogin() применяется для аутентификации пользователей при щелчке по кнопке Log in на первой странице. Начнем с определения четырех переменных с глобальной областью видимости: $windows и Swidgets для досту­па к уже созданным графическим элементам, $сопп для идентификатора со­единения с MySQL и $disconnect_id. По значению $сопп будем проверять, уста­новлено ли уже соединение с MySQL. Если соединения нет, мы его создаем и выбираем базу данных:

function {

GLOBAL {windows; GLOBAL Swidgets; GLOBAL $conn; GLOBAL $disconnect_id;

if (!$conn) {

$conn = mysql_connect('localhost' , 'user', 'pass'); mysql_select_db('library');

I

После этого получаем имя пользователя и пароль из окон GtkEntry на форме, снова с помощью метода get _text ():

Jusername = $widgets['main']['login_name']->get_text(); Spassword = $widgets['main']['login_pass']->get_text();

Строим запрос SQL и отправляем его MySQL, записывая указатель результа­тов в переменную Sresult. Затем отключаем обработчик сигнала destroy для окна main. Если вспомнить, в loadMainWindow() мы устанавливаем область ви­димости $disconnect_id глобальной, как в начале этой функции. Причина в том, что метод disconnect) принимает один аргумент, являющийся значени­ем, которое возвращает метод connect(), и для хранения его использовали переменную $disconnect_id. Затем мы уничтожаем главное окно.

Наконец, мы должны проверить, был ли аутентифицирован пользователь. Проверяем результат, и если он равен то загружаем страницу поиска. Если возвращен результат false, то выходим из программы, отправив на консоль сообщение Authentication failed: