созидательная сила AJAX ALEXEY SHOCKOV Спецвыпуск: Хакер, номер #067, стр. 067-052-5 (req.responseJS.auth ? "Вы авторизованы!" : "Вы ввели неправильные данные!"); } } } Библиотека берет на себя все функции формирования запроса и его отправку. В зависимости от тех возможностей, которые поддерживает браузер, автоматически выбирается способ обмена данными с сервером: с помощью объекта XMLHTTPRequest или с помощью элемента SCRIPT. Теперь обратим внимание на backend-системы — серверную часть. Подключаем серверную часть библиотеки. Без комментариев. require_once "lib/config.php"; require_once "Subsys/JsHttpRequest/Php.php"; После подключения библиотеки для работы с AJAX необходимо создать объект класса Subsys_JsHttpRequest_Php. Для правильной работы требуется указать кодировку, в которой работает наш сайт, чаще всего это win1251. Далее все идет практически как в обычном приложении без использования AJAX. Переменные, посланные клиентом, берем из массива $_REQUEST, проводим простую проверку пользователя. // Set page encoding $JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251"); // Create users array $users = array( "vasia" => "ivanov", "petia" => "vaseckins" ); // Get query $u = $_REQUEST['u']; $p = $_REQUEST['p']; // Check $auth = false; if (array_key_exists($u, $users)) { if ($p == $users[$u]) { $auth = true; } } Непривычным может показаться способ отправки данных клиенту — простым формированием хэш-массива $_RESULT. При создании объекта Subsys_JsHttpRequest_Php устанавливается буферизация выходного потока с библиотечным обработчиком данных. Из этого следует, что все выводимое нами в скрипте будет перехвачено библиотекой и окажется доступным на стороне клиента в переменной responseText. Этой возможностью удобно пользоваться для обработки ошибок. $_RESULT = array( "auth" => $auth ); Вот, кажется, и все — наша авторизация готова. [напоследок] AJAX — важный шаг в развитии идеологии Web 2.0, которая медленно, но верно начинает набирать популярность. Приближение интерфейсов web-приложений к обычным оконным приложениям заставляет пользователя задуматься о выборе, и симпатии людей обернутся в пользу именно web’а. Появление таких приложений, как Google Calendar и Google Maps, существование библиотек для работы с AJAX практически для любого языка, который может работать с сетью, что-нибудь да значат. Так что если мы идем в ногу со временем, то неоднократные встречи с этой технологией нам обеспечены. А что может быть лучше, чем быть подготовленным? Ссылки по теме ТИП: WWW http://dklab.ru/lib/Subsys_JsHttpRequest — библиотека Subsys_JsHttpRequest. http://gmail.com — web-интерфейс к почте Google. Интересный пример, который применяет технологию AJAX в полной мере. http://prototype.conio.net - популярная AJAX-библиотека http://script.aculo.us - еще одна известная библиотека |