Перед тем, как перейти непосредственно к формированию кода, давайте рассмотрим немного теории. Для этого обратим сначала внимание на код сверстанной нами средствами HTML формы в прошлом уроке:
Во-первых, из атрибутов тега <form> мы можем заметить, что файлом-обработчиком для данной формы является файл form.php, расположенный в той же директории, что и просматриваемый нами в данный момент файл. Метод передачи данных – POST. Это значит, что все данные, передаваемые этой формой, будут записаны в предопределенный массив $_POST. Именно оттуда их и нужно будет «доставать». Каким образом?
Мы помним, что для доступа к тому или иному элементу массива, необходимо обратиться к нему по его ключу. Нам нужны будут данные об имени и email, которые указал пользователь. Как же узнать, по каким ключам необходимо «вылавливать» эти элементы? Вот тут-то и приходит нам на помощь атрибут name тега <input>. Не зря в прошлом занятии я писал о том, что если мы хотим, чтобы форма работала, обязательно нужно прописывать этот атрибут и присваивать ему значение! Именно значение данного атрибута и будет являться ключом в массиве $_POST для соответствующего элемента. При нажатии на кнопку «Подписаться!», браузер передаст серверу заполненные пользователем данные именно в таком виде.
Таким образом, уже сейчас мы с вами можем сделать вывод о том, что имя, введенное пользователем, содержится здесь: $_POST[‘name’], а указанный им email - здесь: $_POST[‘email’]
Для того, чтобы использовать эти данные, достаточно лишь написать любой PHP-код, и подставить их туда, где они необходимы. Чем мы сейчас с вами и займемся.
Нашей задачей было вывести введенные пользователем данные на экран. Это не правило, но лично мне элементы массива перед их использованием всегда нравится записывать в качестве значения некоторых переменных.
В коде выше вы видите очень простой алгоритм. Сначала переменным $name и $email были присвоены соответствующие значения из массива $_POST. А затем эти переменные были просто подставлены в значения выводимых на экран строчек. Сохраните файл. И при включенном Денвере попробуйте запустить форму, заполнить ее и посмотрите, как браузер выведет на экран введенные вам данные.
Как видим, все невероятно просто и быстро.
Мы могли бы закончить обсуждение этого урока, если бы не одна крайне неприятная особенность. Возможно, ваш браузер корректно отобразил все русские символы. Но лично у меня он отобразил такую кракозябру:
Проблема заключается в том, что мы забыли указать кодировку, в которой необходимо отображать файл.
Сначала, убедитесь в том, что Notepad++ создает файл в нужной кодировке. Советую не заморачиваться с этим вопросам, и в настройках программы указать, что при создании нового файла нужно всегда использовать кодировку «UTF без BOM». Заметьте, без BOM!
Делается это через настройки программы, которые находятся по пути: Опции – Настройки – Новый Документ
Чтобы проверить, в какой кодировке у вас уже создан файл, откройте его в редакторе Notepad++, и в меню выберите пункт «Кодировки». Нужная кодировка будет помечена:
В самом файле, который выводит на экран текст, всегда должна быть прописана кодировка, в которой этот текст нужно вывести.
Посмотрите, как выглядит код, соответствующий этому правилу:
Здесь добавлена всего одна строка, указывающая браузеру, в какой кодировке нужно отображать все выводимые на экран символы.
Теперь, если вы все сделали правильно, то браузер корректно выведет введенные пользователем данные в форму.
На самом деле, понимая то, как принимая данные от пользователя посредством заполнения формы, вы можете делать с этими данными все, что угодно. Например, передать их в базу данных скрипта автоматической рассылки в качестве данных нового подписчика.
Все статьи этой серии:
- Вступление. Необходимый инструментарий. Первый скрипт
- Базовый синтаксист. Оператор echo
- Переменная. Константы
- Типы данных
- Операторы. Операции
- Ветвления
- Функции
- Область видимости переменных и время их жизни
- Циклы
- Массивы
- Предопределенные массивы. Функции для работы с массивами
- HTTP-запросы
- Формы. Работа с HTML-кодом
- Формы. Обработка средствами PHP
- Базы данных. SQL-запросы
- Базы данных. Работа с SQL средствами PHP
- Защита от SQL-инъекций
- Продолжение следует
Сообщение отредактировал GoodX: 04 Сентябрь 2012 - 02:36