
Лабораторная работа № 1
PHP: работа с формами, файлами и базой данных
Цель работы: изучение средств РНР, позволяющих обработать данные в формах, передать файл на сервер, проверить параметры файла, обработать данные, сведенные в таблицы БД: создать таблицу, добавить запись к таблице, выполнить запрос, проанализировать его результаты
Методические указания по выполнению работы
Общие сведения
РНР работает на самых разных платформах. Это может быть Windows, многие из версий UNIX, в том числе Linux и даже Macintosh. PHP поддерживает широкий набор серверов, среди которых Apache (сам по себе являющийся открытым программным продуктом), Microsoft Internet Information Server, WebSite Pro, iPlanet Web Server и Microsoft Personal Web Server. Последний сервер особенно полезен тогда, когда нужно проверить свои программы под Windows, хотя нужно заметить, что и сервер Apache работает под управлением системы Windows.
При создании языка РНР учитывалось требование высокой интеграции с базами данных. Это стало одной из причин того, что РНР так популярен при создании развитых Web-приложений. Многие базы данных непосредственно поддерживаются языком РНР, и среди них такие, как Adabas D, InterBase, Solid, dBase, mSQL, Sybase, Empress, MySQL, Velocis, FilePro, Oracle, UNIX dbm, Informix и др. Кроме того, РНР поддерживает стандарт ODBC.
Для написания PHP-программы нужно открыть текстовый редактор. Как и HTML-документы, PHP-программы состоят из простого текста, поэтому писать их можно с помощью любого текстового редактора.
Пример первой РНР-программы.
<?php
print "hello Web!"; ?>
У этого файла должно быть правильное расширение, потому что на основании этого сервер распознает файл как PHP-программу и запустит интерпретатор. По умолчанию расширение файлов программ должно быть .php. Однако это может быть изменено с помощью файла конфигурации.
Функция print() предназначена для вывода данных. В большинстве случаев все, что выводитcя с помощью этой функции, появляется в окне броузера.
Взаимодействие html и рнр
Предыдущая программа состоит только из команд РНР. Однако можно создать смешанный документ, просто добавив HTML-текст перед открывающим и после закрывающего тэгов. Пример.
<html> <head>
<title> Документ, содержащий РНР-команды и HTML-текст </title> </head> <body> <b> <?php
print "Hello world!";
?>
</b>
</body>
</html>
Интерпретатор игнорирует все, что находится вне тэгов РНР. Если вы отобразите этот документ на экране броузера, то увидите слова hello world, выделенные полужирным шрифтом.
В документ можно включать столько блоков РНР-команд, сколько потребуется для формирования Web-страницы. Несколько блоков команд в одном документе образуют единую программу. Это означает, что все, что вы определите в первом блоке (переменные, функции или классы), будет доступно программе в следующих блоках.
Программа для обработки ввода пользователя
Пример простой HTML-формы. Создадим файл form.html:
<html>
<head>
<title> Простая HTML-форма </title>
</head>
<body>
<form action="form.php" method="GET">
<input type="text" name="user”>
<br>
<textarea name="address" rows="5" cols="40">
</textarea>
<br>
<input type="submit" value=”hit it!">
</form>
</body>
</html>
В этой форму, в которой есть текстовое поле с именем "user", текстовая область с именем "address" и кнопка передачи данных "Submit". Элемент ACTION тэга FORM указывает на файл form.php, следовательно данный файл будет обрабатывать данные формы. Этот файл должен находиться в том же каталоге на сервере, что и HTML-документы.
Приведем программу, обрабатывающую данные формы из предыдущего примера.
<html>
<head>
<title> Чтение данных формы </title>
</head>
<body>
<?php
print "Welcome <b>$user</b><P>\n\n";
print "Your address is:<P>\n,\n<b>$address</b>";
?>
</body>
</html>
Программу следует сохранить под именем form.php
Для просмотра результатов работы следует указать в строке адреса броузера http://localhost/form.html
Далее необходимо ввести данные в форму и нажать на кнопку, отправляющую данные на сервер. После этого в броузере отобразится результат обработки данных программой form.php.
Обработка элементов с многозначным выбором
Для того чтобы программа могла иметь доступ ко всем значениям, выбранным пользователем, нужно к имени данного элемента приписать пару пустых квадратных скобок. Это и сделано в примере.
<html>
<head>
<title> HTML-форма с тэгом select </title> </head> <body>
<form action="ff.php" method="POST">
<input type="text" name="user">
<br>
<textarea name="address" rows="5" cols="40">
</textarea>
<br>
<select name= "products[]" multiple>
<option>Sony
<option>Panasonic
<option>Samsung
<option>LG
</select>
<br>
<input type="submit" value="hit it!">
</form>
</body> </html>
Теперь в программе, предназначенной для обработки этой формы, значения, выбранные пользователем в элементе "products[ ]", будут доступны как элементы массива $products.
<html>
<head>
<title> Обработка данных формы </title>
</head>
<body>
<?php
print "Welcome <b>$user</b><p>\n\n>;
print "Your address is:<p>\n\n<b>$address</b><p>\n\n";
print "Your product choicee are:<p>\n\n;
print "<ul>\n\n”;
foreach { $products as $value )
{
print "<li>$value<br>\n"
print "</ul>"
?>
</body>
</html>
Тэг SELECT — не единственный элемент, который позволяет ввести несколько значений. Можно создать несколько флажков с одним именем и ввести несколько значений под этим одним именем. Если имя заканчивается пустыми квадратными скобками, то все значения, переданные пользователем, становятся доступными программе в виде элементов массива.