- •Тема 1. Основы рнр
- •1. Описание языка рнр
- •2. Как работает рнр-сценарий
- •3. Программное обеспечение.
- •3. Базовый синтаксис рнр
- •4. Операторы
- •5. Комментарии
- •6. Переменные
- •7. Внешние переменные
- •8. Типы данных
- •9. Операция присваивания
- •10. Операции над числами
- •11. Операции сравнения
- •12. Логические операции
- •13. Строковые операции
- •14. Приоритет выполнения операций
3. Программное обеспечение.
Для тестирования и настройки программ необходимо установить на компьютер специальное программное обеспечение, которое можно получить бесплатно с сайтов производителей:
Web-сервер Apache —доступен по адресу www.apache.org.
Интерпретатор РНР — можно загрузить по адресу www.php.net.
MySQL —можно загрузить по адресу www.mysql.com.
phpMyAdmin — набор скриптов на РНР для управления базами данных. Можно загрузить по адресу www. phpmyadmin.net
Вместо установки и ручной настройки всех этих программ можно установить систему Денвер. Можно скачать с сайта www.denwer.ru.
Базовый пакет Денвера включает:
Web-сервер Apache,
Интерпретатор РНР,
MySQL,
phpMyAdmin,
miniPerl,
эмулятор программы Sendmail и SMTP-сервера.
Для редактирования сценариев можно использовать Блокнот, PHP Expert Editor (www.ankord.com/ru/) или другие редакторы.
3. Базовый синтаксис рнр
Все PHP-сценарии пишутся в виде блоков кода. Эти блоки при могут быть встроены в HTML, и обычно определяются с помощью специальных тегов:
Листинг 1.1. Теги PHP
<?php
…
?>
4. Операторы
Каждый оператор в PHP заканчивается разделителем «;». Операторы могут содержать переводы строк. В PHP используются простые операторы и составные. Составные операторы – это последовательность простых операторов заключенных в фигурные скобки. Составной оператор не оканчивается символом «;».
Листинг 1.2. Простые операторы
<?php
echo 5+5;
echo "Hello, world";
?>
Функция echo() применяется для вывода различной информации (текст, результат выполнения операции, теги HTML и т.д.) в браузер.
Листинг 1.3. Составной оператор
<?php
{
echo 5+5;
echo "Hello, world";
}
?>
Для вывода информации можно использовать также функцию print().
Синтаксис:
print (string arg)
Выводит arg. Возвращает TRUE при успехе, FALSE при неудаче. print() это в действительности не функция, а конструкция языка, поэтому с ней не обязательно использовать скобки.
Листинг 1.4. Функция print()
<?php
print("Hello, world");
print "эта функция работает также без скобок.";
?>
5. Комментарии
PHP предоставляет несколько методов для вставки комментариев. Комментарии PHP действуют только внутри тегов ограничителей PHP.
Листинг 1.5. Комментарии
<?php
echo 5+5; // это однострочный комментарий
echo 5-2; # и это однострочный комментарий
echo "Hello, world";
/*
а это многострочный
комментарий
*/
?>
6. Переменные
В РНР имена переменных всегда начинаются с символа «$» и содержат произвольную комбинацию символов, при условии, что первый символ после «$» будет буквой или знаком подчеркивания. Переменные в PHP чувствительны к регистру.
Листинг 1.6. Примеры переменных в РНР
<?php
$myvar = "foo"; // Присвоение строки 'foo'
badvar = "test"; //Неверно, нет символа $
$5php = "is wrong"; // Неверно, начинается с цифры
?>
7. Внешние переменные
Внешними переменными называются все переменные, которые поступают в программу из окружающего мира (предоставляются браузером и сервером). После того как запрос клиента проанализирован Web-сервером и передан PHP-интерпретатору, последний устанавливает ряд переменных, которые содержат данные, относящиеся к запросу.
Протокол HTTP, лежащий в основе Web, допускает передачу данных с помощью метода GET или POST. По умолчанию используется метод GET. Создадим html-форму (рис. 1) в файле index.php, которая будет состоять из одного текстового поля name и кнопки submit.
Рис 1. HTML-форма
Листинг 1.7. HTML-форма, передающая данные методом GET
<form method="GET">
<input type="text" name="Т1">
<input type="submit" name= "В1" value ="Send">
</form>
Если ввести в текстовое поле Hello и нажать кнопку Send, в результате никаких видимых изменений не произойдет, но строка адреса в браузере примет вид показанный на рис.2:
Рис.2. Передача данных методом GET.
Так как исходный файл называется index.php, то его название в строке адреса опущено. Таким образом, через строку адреса передаются GET-параметры. Если в Интернете вы видите строку, содержащую знаки вопроса и амперсанда, то перед вами передача параметров методом GET. Знак вопроса «?» после имени файла обозначает начало передача переменных методом GET. После него следуют пары имя=значение, разделенные символом амперсанда «&». В представленной строке передано два параметра с именами T1 и B1 и значениями Hello и Send соответственно. Получить доступ к GET-параметрам можно через суперглобальный массив $_GET, указав в квадратных скобках после него имя параметра.
Изменим файл index.php, так чтобы данные введенные в поле выводились сразу после HTML-формы.
Листинг 1.8. Вывод GET-параметров
<form method="GET">
<input type="text" name="Т1">
<input type="submit" name= "В1" value ="Send">
</form>
<?php
echo $_GET['Т1'];
?>
Результат работы скрипта из листинга 1.8. представлен на рис.2.
Рис.2. Вывод GET-параметра Т1.
В рассмотренном примере HTML-форма и обработчик находятся в одном файле. Такой подход является удобным, когда форма и обработчик небольшие. В большинстве случаев удобно размещать обработчик HTML-формы в отдельно файле, для этого в тег <form> необходимо добавить атрибут action, который укажет имя обработчика формы. Пусть в качестве обработчика будет использоваться файл second.php.
Листинг 1.9. Использование атрибута action
<form method=GET action = second.php>
<input type=text name=T1 >
<input type=submit name= B1 value ="Send">
</form>
Создав файл second.php, можно добиться того, чтобы данные из формы отправлялись обработчику в файл second.php.
Листинг 1.10. Обработчик second.php
<?php
echo $_GET[‘T1’];
?>
Передача данных методом GET не всегда является удобной, т.к.:
Пользователь может видеть значение параметров и легко подделывать их в строке запроса.
Объем передаваемой информации через GET-параметры ограничен (как правило 8 Кбайт).
GET-параметры передаются через НТТР-заголовки. Существует еще один способ передачи данных — передача через тело документа. Для этого предназначен метод POST. Чтобы передать данные из формы обработчику методом POST атрибуту method тега <form> необходимо присвоить значение POST.
Листинг 1.11. Передача данных методом POST
<form method=POST action = next.php >
<input type=text name=T1 >
<input type=submit name= B1 value ="Send">
</form>
Для получения POST параметров необходимо использовать суперглобальный массив $_POST.
Листинг 1.12. Обработчик next.php
<?php
echo $_POST['T1'];
?>
Результат работы скриптов из листингов 1.11 и 1.12 представлен на рис.3.
Как видно из рис. 3 в адресной строке уже нет никаких параметров, тем не менее, строка Hello выводится на странице.
Данные, передаваемые методом POST, также ограничены в объеме —8 Мбайт.
Рис.3. Передача данных методом POST.
