Дипломная работа: Создание динамических сайтов средствами Dreamweaver
6. Обработка запросов. Формы. Любой запрос клиента к серверу должен начинаться с указания метода. Метод сообщает о цели запроса клиента. Протокол HTTP поддерживает достаточно много методов, но реально используются только три: POST, GET и HEAD. Метод GET позволяет получить любые данные, идентифицированные с помощью URL в запросе ресурса. Если URL указывает на программу, то возвращается результат работы программы, а не ее текст (если, конечно, текст не есть результат ее работы). Дополнительная информация, необходимая для обработки запроса, встраивается в сам запрос (в строку статуса). При использовании метода GET в поле тела ресурса возвращается собственно затребованная информация (текст HTML-документа, например).
Метод HEAD аналогичен методу GET, только не возвращает тело ресурса и не имеет условного аналога. Метод HEAD используют для получения информации о ресурсе. Это может пригодиться, например, при решении задачи тестирования гипертекстовых ссылок.
Метод POST разработан для передачи на сервер такой информации, как аннотации ресурсов, новостные и почтовые сообщения, данные для добавления в базу данных, т.е. для передачи информации большого объема и достаточно важной. В отличие от методов GET и HEAD, в POST передается тело ресурса, которое и является информацией, получаемой из полей форм или других источников ввода. [4]
Формы предназначены для того, чтобы получать от пользователя информацию. В них можно вводить текст или выбирать подходящие варианты из списка. Данные, записанные в форму, отправляются для обработки специальной программе (например, скрипту на PHP) на сервере. В зависимости от введенных пользователем данных эта программа может формировать различные web-страницы, отправлять запросы к базе данных, запускать различные приложения и т.п. [6]
Для обращения к переменным, переданным с помощью HTTP-запросов существует специальный массив - $_REQUEST. Он содержит данные, переданные методами POST и GET, а также с помощью HTTP cookies. Это суперглобальный ассоциативный массив, т.е. его значения можно получить в любом месте программы, используя в качестве ключа имя соответствующей переменной (элемента формы). [26]
Приведем пример использования массивов $_POST и $_GET. Допустим, нам нужно обработать форму, содержащую элементы ввода с именами first_name, last_name, kurs. Данные были переданы методом POST, и данные, переданные другими методами, мы обрабатывать не хотим. Это можно сделать следующим образом:
<? php $str = "Здравствуйте, ". $_POST ["first_name"]." ". $_POST ["last_name"]. "! <br>";
$str. = "Вы выбрали для изучения курс по ".
$_POST ["kurs"];
echo $str;
? >
Тогда на экране браузера, если мы ввели имя "Иван", фамилию "Петров" и выбрали среди всех курсов курс по PHP, увидим сообщение:
Здравствуйте, Иван Петров! Вы выбрали для изучения курс по PHP
7. Функции. В программировании, как и в математике, функция есть отображение множества ее аргументов на множество ее значений. То есть функция для каждого набора значений аргумента возвращает какие-то значения, являющиеся результатом ее работы.
У каждой функции может быть, как мы уже говорили, список аргументов. С помощью этих аргументов в функцию передается различная информация (например, значение числа, факториал которого надо подсчитать). Каждый аргумент представляет собой переменную или константу. [10]
С помощью аргументов данные в функцию можно передавать тремя различными способами. Это передача аргументов по значению (используется по умолчанию), по ссылке и задание значения аргументов по умолчанию.
Когда аргумент передается в функцию по значению, изменение значения аргумента внутри функции не влияет на его значение вне функции. Чтобы позволить функции изменять ее аргументы, их нужно передавать по ссылке. Для этого в определении функции перед именем аргумента следует написать знак амперсанд "&". [18]
В РНР существует несколько встроенных функций: echo (), print (), date (), include. Все, кроме date (), являются языковыми конструкциями. Они входят в ядро PHP и не требуют никаких дополнительных настроек и модулей. Функция date () тоже входит в состав ядра PHP и не требует настроек. Но есть и функции, для работы с которыми нужно установить различные библиотеки и подключить соответствующий модуль. Например, для использования функций работы с базой данных MySql следует скомпилировать PHP с поддержкой этого расширения. В последнее время наиболее распространенные расширения и соответственно их функции изначально включают в состав PHP так, чтобы с ними можно работать без каких бы то ни было дополнительных настроек интерпретатора. [10]
8. Классы и объекты. Объект - это структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии, класс - это описание таких объектов и действий, которые можно с ними выполнять. [4]
Класс определяется с помощью следующего синтаксиса:
class Имя_класса{ var $имя_свойства;
/*список свойств*/ function имя_метода () { /* определение метода */ } /*список методов*/ }
Имя класса должно удовлетворять правилам именования объектов в языке PHP, но есть ряд имен, которые зарезервированы разработчиками для своих целей. В первую очередь это имена, начинающиеся с символа подчеркивания "_". Для создания классов и функций нельзя использовать такие имена. Кроме того, зарезервировано имя stdClass, поскольку оно используется внутри движка PHP.
Переменная нужного типа создается из класса с помощью оператора new. Создав объект, мы можем применять к нему все методы и получать все свойства, определенные в описании класса. Для этого используют такой синтаксис: $имя_объекта->название_свойства или $имя_объекта->название_метода (список аргументов). Перед названием свойства или метода знака $ не ставят.
<? php $art = new Articles;
// создаем объект $art echo ($art - >title);
// выводим название объекта $art $another_art = new Articles;
// создаем объект $another_art $another_art->show_article ();
// вызываем метод для отображения объекта в браузер ? >