Пример создания законченного приложения
Создадим простой HTML файл-форму.
<HTML>
<head>
<title>Запрос информации</title>
<body>
<CENTER>
Хотите больше знать о наших товарах?
<P>
<table WIDTH = 400><tr><td align = right>
<FORM ACTION="email.htm3" METHOD="POST">
Ваше имя:<BR>
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">
<P>
Ваш email:<BR>
<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">
<P>
Меня интересуют:
<SELECT NAME="preference">
<OPTION value = "Яблоки">Яблоки
<OPTION value = "Апельсины">Апельсины
</SELECT>
<P>
<INPUT TYPE="submit" VALUE="Отправить запрос!">
</FORM>
</td></tr></table></CENTER>
</body>
</HTML>
Назовем этот файл request.html. В нем мы указали, что данные формы будут обрабатываться файлом email.htm3.
Приведем его содержание:
<?
/* Этот скрипт получает переменные из request.html */
PRINT "<CENTER>";
PRINT "Привет, $name.";
PRINT "<BR><BR>";
PRINT "Спасибо за ваш интерес.<BR><BR>";
PRINT "Вас интересуют $preference. Информацию о них мы пошлем вам на email: $email.";
PRINT "</CENTER>";
?>
Теперь, если пользователь вызовет request.html и наберет в форме имя "Вася", email: vasya@pupkin.com и скажет, что его интересуют "Яблоки", а после этого нажмет "Отправить запрос!", то на экране появитсяследующий текст:
Привет, Вася
Спасибо за ваш интерес.
Вас интересуют Яблоки. Информацию о них мы пошлем вам на email: vasya@pupkin.com
Давайте усложним пример. Мы должны сдержать обещание и выслать email.
Для этого в PHP есть функция MAIL.
void mail(string to, string subject, string message, string add_headers);
to - email адрес получателя.
subject - тема письма.
message - собственно текст сообщения.
add_headers - другие параметры заголовка письма (необязательный параметр).
Допишем в конец файла email.htm3 следующий код:
<?
mail($email, "Запрос на информацию", "$name\n
Спасибо за ваш интерес!\n
Вас интересуют $preference\n
Мы их распространяем бесплатно. Обратитесь в ближайший филиал нашей компании и получите ящик этого
продукта.\n
");
mail("administration@me.com",
"Был запрос на информацию.",
"$name интересовали $preference\n
email-адрес: $email. \n");
?>
Вот теперь пользователь будет получать письмо с более подробной информацией о наших товарах. Также письмо получит и администратор сайта.
Когда интересующихся нашими товарами станет очень много, мы захотим их как-то упорядочить и хранить информацию о них в базе данных.
Теперь наш файл email.htm3 будет иметь следующий вид:
<?
/* Этот скрипт получает переменные из request.html */
/* Некоторые переменные */
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";
/* Таблица MySQL, в которой хранятся данные */
$userstable = "clients";
/* email администратора */
$adminaddress = "administration@me.com";
/* создать соединение */
$db = mysql_connect($hostname,$username,$password) or die("Не могу создать соединение ");
mysql_select_db("$dbName",$db) or die("Не могу выбрать базу данных ");
print "<CENTER>";
print "Привет, $name.";
print "<BR><BR>";
print "Спасибо за ваш интерес.<BR><BR>";
print "Вас интересуют $preference. Информацию о них мы пошлем вамна email: $email.";
print "</CENTER>";
/* Отправляем email */
mail($email, "Запрос на информацию", "$namen\n
Спасибо за ваш интерес!\n
Вас интересуют $preference\n
Мы их распространяем бесплатно. Обратитесь в ближайший филиал нашей компании и получите ящик этого
продукта.\n
");
mail("administration@me.com",
"Был запрос на информацию.",
"$name интересовали $preference\n
email-адрес: $email. \n");
/* Вставить информацию о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')";
$result = mysql_query($query);
print "Информация о вас занесена в базу данных.";
/* Закрыть соединение */
mysql_close();
?>
Теперь кроме письменных уведомлений, информация о клиенте и его интересах будет заносится в таблицу MySQL.
После занесения данных, нас иногда будет интересовать вопрос так кого же из наших клиентов интересует товар "Яблоки" (не путать с Apple Macintosh, по поводу Apple Macintosh см. www.stealthcomp.com).
Напишем скрипт apple.htm3
<?/* Скрипт показывает клиентов, которые яблоки любят больше, чем апельсины */
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";
/* Таблица MySQL, в которой хранятся данные */
$userstable = "clients";
/* создать соединение */
mysql_connect($hostname,$username,$password) or die("Не могу создать соединение ");
@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");
/* Выбрать всех клиентов - яблочников */
$query = "SELECT * FROM $userstable WHERE choice = 'Яблоки'";
$result = mysql_query($query);
/* Как много нашлось таких */
$number = mysql_numrows($result);
/* Напечатать всех в красивом виде*/
$i = 0;
if ($number == 0)
{
print "<CENTER><P>Любителей яблок нет</CENTER>";
}
elseif ($number > 0)
{
print "<CENTER><P>Количество любителей яблок: $number<BR><BR>";
while ($i < $number)
{
$name = mysql_result($result,$i,"name");
$email = mysql_result($result,$i,"email");
print "Клиент $name любит Яблоки.<BR>";
print "Его Email: $email.";
print "<BR><BR>";
$i++;
}
print "</CENTER>";
}
?>
Здесь мы использовали новую функцию:
int mysql_num_rows(int result);
Параметры:
result - содержит ID результата запроса.
Функция возвращает количество строк в результате запроса.
Вот и все, коммерческий продукт практически готов.
Все вопросы и замечания по данной работе присылайте на E-mail: kachanov@ogs.gomel.by.
Александр Качанов (kachanov@ogs.gomel.by)
Вадим Ткаченко (vvtk@stealthcomp.com) (http://web.stealthcomp.com)
Андрей Головин (mine@convex.ru) (http://exper.ural.ru)