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


$ sql = ' SELECT COUNTC*) AS matched FROM users WHERE username="'

. $username . "' ANDpassword="' . Spassword . ""; Sresult = mysql_query($sql);

Sarray = mysql_fetch„array($result); $windows[ ' main 3->disconnect($disconnect_id); $windows['nain']->destroy();

if

loadSearchPageO;

else

quit("Authentication failed\n");

}

Последние две функции - quit() и destroyWnd() - используются для выхода из принимает один аргумент и выводит его в командную

строку перед выходом из программы, a destroyWnd() выступает в качестве функции обратного вызова окнами регистрации и поиска, в результате чего при щелчке по кнопке X в правой верхней части окна программа завершается:

function quit(Smsg) {

printf($msg , "\n"); gtk::main_quit();

}

function destroyWnd() {

gtk::main_quit();

)

Последние несколько строк кода загружают расширение PHP-GTK, как бы­ло описано в примере Hello World. Затем мы вызываем функцию loadMain- Window(), чтобы показать страницу регистрации, и наконец, как во всех при­ложениях PHP-GTK, вызываем функцию gtk: :main() для запуска главного цикла PHP-GTK:

if (strtoupper(substr(PHP„OS, 0, 3)) == 'WIN') dlCphp_gtk.dll');

else

: dl('php_gtk.so');

loadMainWindow(); gtk::main(); 1>

В качестве маленького упражнения читатель может изменить функцию

чтобы вместо вывода сообщений об ошибках в командную строку она выводила небольшое диалоговое окно, информируя пользователя об ошибке (совет: не забудьте о классе GtkDialog). ,

Вот несколько снимков экрана готового продукта (рис. 20.3-20.5):

Для этой простой задачи потребовалось написать много кода, но не всегда обязательно делать это самому. К счастью, PHP-GTK поддерживает прило­жение под названием Glade, предназначенное для построения GUI. С помо­щью Glade можно разработать GUI и сохранить его в файле XML. Затем файл XML загружается в PHP-GTK путем объявления его как нового экзем­пляра класса GladeXML, после чего он будет выполнять тот GUI, который раз­работал программист. Рассказ о Glade выходит за рамки данной ознакоми­тельной главы, но сведения о нем есть в руководстве по PHP-GTK. Есть так­же очень хорошая глава о работе с Glade в «Professional Linux Programming» издательства Wrox Press (ISBN 1-861003-01-3).

Надеюсь, что в результате этого знакомства с PHP-GTK вы получили такую же радость, как я, когда узнал, что с помощью РНР можно создавать прило­жения GUI. Тем самым в языке открывается новое измерение, которое, можно надеяться, окажется полезным активом для сообщества РНР.