Содержание
Delphi for PHP: очень быстрый старт с нуля

На сайте CodeGear можно скачать 30-дневную ознакомительную версию Delphi for PHP. Там же надо зарегистрироваться и получить файл активации. Файл активации должен быть скопирован обязательно в директорию пользователя (для Windows XP это C:\Documents and Settings\<username>). При возникновении проблем в процессе работы с Delphi for PHP можно попробовать обновить VCL, для чего скачать последнюю версию VCL for PHP и после установки Delphi for PHP заменить ею содержимое папки <директория установки>\1.0\VCL.
Если предполагается работать с MySQL, то для разработки и тестирования программ достаточно установить готовый набор Web-разработчика, например, Денвер. Для администрирования MySQL можно использовать phpMyAdmin (присутствует в Денвер) или MySQL Administrator от разработчиков MySQL. При выборе средства администрирования нужно учесть, что хостинг-провайдеры, как правило, предоставляют для удаленного администрирования phpMyAdmin.

Итак, на компьютере:
- Windows XP SP2;
- Delphi for PHP Trial license, скачан 30.01.08, без обновления VCL;
- Денвер-3;
- MySQL Administrator 1.2.8.
 
Перескакивая через <Hello, World>, создадим небольшую программку для работы с базой данных, например - программу аутентификации пользователей с последующим доступом к таблице базы данных. С помощью MySQL Administrator создаем базу test с таблицей users (предварительно должен быть запущен Денвер). Кодировка таблицы cp1251. Поля:



Вводим пару-тройку записей для тестирования. Создаем нового пользователя test с паролем test, назначаем ему полные права на таблицу users.
Запускаем Delphi for PHP. В опциях в разделе PHP должна быть установлена кодировка по умолчанию windows-1251. Создаем новый проект <File - New - Application>. На форму с закладки Standard панели инструментов Tool Palette перетаскиваем три компонента Label, два компонента Edit и компонент Button. С закладки Data Access перетаскиваем компоненты Database и Query. Компонентом Label3 пусть будет заголовок.



Настраиваем Database и Query.


Свойство IsPassword окна ввода пароля устанавливаем в true, чтобы пароль отображался звездочками. Дважды кликаем на кнопке и пишем обработку.

               function Button1Click($sender, $params)
               {

                  //устанавливаем соединение
                 $this->Database1->Open();

                  //устанавливаем кодировку запросов
                 $sql="SET NAMES cp1251";
                 $this->Query1->SQL=$sql;
                 $this->Query1->LimitStart='-1';
                 $this->Query1->LimitCount='-1';
                 $this->Query1->Open();
                 $this->Query1->Close();

                 //выполняем запрос
                 $sql="select id, name from `test`.`users` where name='" . $this->Edit1->Text . "'" .
                      " and pass='" . $this->Edit2->Text . "'";
                 $this->Query1->SQL=$sql;
                 $this->Query1->LimitStart='0';
                 $this->Query1->LimitCount='10';
                 $this->Query1->Open();

                 //должна быть только одна такая запись
                 if ($this->Query1->readRecordCount()==1)
                 {
                   $this->Label3->Caption="Вход в систему - " . $this->Query1->name;
                 }
                 else
                 {
                   $this->Label3->Caption="Вход в систему - не выполнен";
                 }

                 $this->Query1->Close();

                 //закрываем соединение
                 $this->Database1->Close();

               }

Примечание. Если не будет установлена кодировка запросов SET NAMES cp1251, при отправке кириллического имени и/или пароля сервер может выдать ошибку типа: ERROR 1267: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE). А может и не выдать - зависит от версии MySQL.

Сохраняем проект с именами по умолчанию, нажимаем F9 или кнопку Run - и форма открывается в браузере. Можно тестировать.

Для размещения программы на Web-сервере и для проверки ее работоспособности без Delphi for PHP, необходимо поместить в каталог Web-сервера (в Денвере-3 это по умолчанию \home\localhost\www) файлы программы и необходимые копоненты библиотеки VCL. Для выбора компонентов VCL можно воспользоваться мастером Tools - Deployment Wizard. После завершения работы мастера в указанном каталоге будет создана папка VCL только с компонентами, необходимыми для работы данной программы. То есть в каталоге Web-сервера, предназначенном для тестирования программы (например, \home\localhost\www\mytest), должны присутствовать файлы unit1.php, unit1.xml.php и созданная мастером папка VCL. Набрав в адресной строке браузера http://localhost/mytest/unit1.php, получим окно нашей программы.

При успешной аутентификации направляем пользователя на форму с полезной информацией, например - с таблицей базы данных. Пусть форма называется unit2.php. Для этого изменим фрагмент программы, добавив команду перенаправления:

                 //должна быть только одна такая запись
                 if ($this->Query1->readRecordCount()==1)
                 {

                   $this->Label3->Caption="Вход в систему - " . $this->Query1->name;

                   //перенаправляем пользователя на нужную страницу
                   header('Location:unit2.php');
                   exit();

                 }
                 else
                 {
                   $this->Label3->Caption="Вход в систему - не выполнен";
                 }

Полезные ссылки:
http://diner.habrahabr.ru/blog/22493.html
http://www.info-expert.ru/articles/development/2835.php

Содержание

© re-stichka.narod.ru
При публикации данного материала ссылка на источник обязательна.

Hosted by uCoz