Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задание 5. Создание WEB-объектов



Клиентские методы HTTP

В HTTP метод клиента определяет запрос, отправленный от Web-клиента, либо РНР-сценария, HTTP-серверу. Существуют три основных типа запросов:

GET-запросы. Когда вы хотите только получить информацию от источника HTTP, то можете сделать это методом GET. Получить информацию можно из файла, либо от исполняемой программы на Web-сервере с указанным URL-адресом. Привлекательность HTTP состоит в том, что запрос GET делает выполнение программы таким же простым, как извлечение файла.

POST-запросы. Когда вы хотите отправить информацию от клиента Web-серверу, то используете запрос POST. Обычно это имеет место, когда вы отправляете содержимое Web-формы Web-серверу.

HEAD-запросы. Когда вы хотите получить информацию о запрошенном URL, но не информацию самого URL, то используете запрос HEAD.

По методу GET контент запроса посылается через поля формы или через строку URL, по методу POST – через поля формы. Запросы можно создать и отправить вручную с помощью средств JavaScript, а получить обратно с помощью методов PHP.

Простой способ просмотреть HTTP запросы и ответы состоит в установке плагина для браузера Firefox, который называется HttpFox и доступен для свободного скачивания.

Ниже приведен пример работы HttpFox для сервера localhost.

Обработка HTML-форм

Одно из главнейших достоинств PHP – это реализация возможности работы с формами HTML. Формы используется почтовыми службами, электронными магазинами и многими другими типами сайтов. Формы – удобный способ получения информации от посетителей сайта. Пример тому – гостевая книга, – которая обеспечивает обратную связь с посетителями и разработчиками сайта.

Формой называется конструкция, состоящая из поименованных элементов, заключенных между HTML-тэгами <form...> n</form>. В качестве элементов формы могут выступать поля ввода текста, кнопки, выпадающие меню, переключатели, квадратики для отметки галочкой checkbox, а также картинки формата jpg или gif. Каждый элемент формы может иметь свое имя. При этом каждый элемент клиентской формы может пересылаться на сервер и становится доступен серверным программам на PHP.

Наиболее важным свойством формы является то, что в ее заголовке в открывающем тэге <form...> можно указать адрес какого-либо файла. В этом случае при загрузке этого файла в программный код, если он будет там присутствовать, передадутся значения всех переменных, установленных в этой форме, в частности, значения всех элементов формы, как если бы эти значения были установлены в программе, расположенной в самом загружаемом файле. Таким образом, можно передавать значения переменных между различными web-страницами, используя их в программном коде.

Если в конфигурационном файле РНР - php.ini - параметр register_globals установлен в on, имена передаваемых переменных соответствуют тем именам, которые были даны элементам формы, а значения - соответственно значениям этих элементов: для поля ввода текста - введенному тексту, для переключателя или checkbox - True при отмеченном и False при неотмеченном, для рисунка - координаты указателя мыши относительно верхнего левого угла изображения. Кроме того, переменные, передаваемые через форму, помещаются в ассоциативные массивы $_POST_ или $_GET. Содержимое поля ввода текста <input type=text name=’myname’ size=30> окажется в элементе $_POST['myname']) или $_GET['myname']). Различие между двумя методами состоит в том, что при передаче данных методом GET эти данные отображаются в адресной строке браузера, а при использовании метода POST - нет. Переменные $_POST и $_GET доступны и во всех функциях, расположенных в программе РНР, т. е. являются глобальными. Способ передачи данных через глобальные переменные является основным, поскольку в последних версиях PHP register_globals установлен в off по умолчанию. Ниже показаны обычно используемые суперглобальные переменные PHP: $_GET[], $_POST[], $_REQUEST[], $_COOKIE[], $_FILES[], $_SERVER[], $_ENV[], $_SESSION[].

Передача переменных в скрипт.

PHP скрипты используются для обработки на сервере полей форм, которые задаются на клиенте. Форма содержит тэги и атрибуты:

<form name="имя_формы" action="путь_к_обработчику"

method="метод_передачи_переменных GET или POST ">

поля ввода...

</form>

Обработчик - это скрипт на сервере, в который будут переданы значения полей ввода. Каждое поле ввода имеет имя, задаваемое атрибутом name и передается в обработчик вместе со своим значением. Рассмотрим пример:

<form action="action.php" method="POST">

Ваше имя: <input type="text" name="name" />

Ваш возраст: <input type="text" name="age" />

Пароль:<input type="text" name="password" />

<input type="submit">

</form>

Когда пользователь заполнит форму и нажмет кнопку отправки submit, будет вызван обработчик action.php. В этом файле может быть:

<html><body>Здравствуйте,

<?php

echo $_POST["name"];

?>.

Вам <?php echo $_POST["age"];?> лет.

Пароль:<?php echo $_POST["password"];?>

</body></html>

Вывод:

Здравствуйте, Егор.Вам 20 лет. Пароль:******

Метод отправки формы - POST. Переменные The $_POST["name"] и $_POST["age"] автоматически установлены в значения из формы средствами PHP. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET. Также можно использовать переменную $_REQUEST, если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE и FILE.

Передача значений переменных по методу GET

При использовании метода GET все данные упаковываются в адресную строку. Причем происходит это следующим образом: вначале имена переменных и их значения преобразуются в вид, безопасный для передачи в строке URL (особенно хорошо это заметно, когда передаются русские символы), после чего все данные преобразуются в форму name=value и собираются в одну строку, отделяясь друг от друга знаком & (амперсанд). Происходит это таким образом:

http://site.domain/action.php?имя=значение&имя=значение

Пары "имя=значение" создаются для каждого элемента ввода, для которого указано имя атрибутом NAME.

В таком виде данные и попадают скрипту, который уже самостоятельно должен проделать обратную операцию и извлечь из строки названия переменных и их значения. Строка запросаможет содержать не более 254 символов. Это одно из ограничений метода GET, которое не позволяет передавать объемные данные.

В отличие от других серверных языков программирования, PHP делает всю нудную работу по расшифровке строки запроса, переданной методом GET, на себя и предоставляет нам уже готовые для использования в скрипте переменные. Причем имя переменной образуется из имени, указанного в соответствующем элементе формы. Если пользователь ввел в строке $name запроса имени "Гриня", то в скрипте автоматически появится переменная $name, которая будет иметь значение "Гриня".

По определению, все данные, передаваемые этим способом, доступны всем и могут быть прочитаны кем угодно. Поэтому им не рекомендуется пользоваться для передачи секретной информации - например паролей.

Рассмотрим пример передачи данных через строку URI:

<!—pr421.php -->

<html>

<head> </head>

<body>

<?php //

$a =$_GET['a'];

$b =$_GET['b'];

$c++;//Если режим on включен. Следует сначала написать $с =$_GET['с'];

echo "a=$a,b=$b"; //

print "<br>c=$c";//

echo "<br> <a href='pr421.php?a=1&b=2&c=3'> новая передача</a>"

?>

</body>

</html>

Получим после запуска вида:

http://localhost/MyPrimers/pr421.php?a=10&b=20&c=30

a=10,b=20

c=31
новая передача

Если нажмем на гиперссылку новая передача, получим

a=1,b=2

c=4
новая передача

Передача данных из клиентской формы на сервер по методу GET

<html><head>

<title>Simpleform.html </title>

</head>

<body>

<form action="form.php" method="GET">

Имя:<input type="text" name="fio"><p>

<input type="submit" value="GO"><p>

</f orm>

</body>

</html>

<?php //form.php

echo "Hello, $fio<br>";

foreach($_GET as $fio=>$value);

echo "$fio=$value<br>";

print_r ($_GET);

print_r ($_REQUEST);

?>

Результат:

Hello,valera
fio=valera
Array ([fio] => valera) Array ([fio] => valera)

Передача данных из клиентской формы на сервер по методу POST

Метод POST, в отличие от GET, передает все данные на стандартный вывод. Соответственно, и ограничений на длину информации нет.

Какой же из этих методов лучше? Это зависит от конкретной ситуации. Для передачи информации, вводимой в форме, в большинстве случаев лучше подходит метод POST. А вот в случае динамических сайтов, когда показываемая страничка определяется не только адресом странички, но и переменными (типичный представитель - интернет-магазин), лучше использовать метод GET.

Кроме простого задания переменной в форме, PHP позволяет использовать для этой цели и массивы. В этом случае код нашей формы будет выглядеть вот так:

<form action="formmail.php" method="post">

Ваше имя:

<input type="text" name="user[name]"><br>

Электронный адрес:

<input type="text" name="user[email]"> <br>

Сообщение:

<textarea name="user[message]"></textarea><br>

<input type="submit" value="Отправить">

</form>

Теперь все введенные пользователем данные будут находиться в массиве $user, что очень удобно для больших форм и передачи множества данных в функцию.

Задание состоит в выделении и создании основных объектов web страницы:

Admin, Новости, Форумы, Голосование, Счетчики, Информация о посетителе, Анкета, Гостевые книги, Форумы, Баннеры, Ссылки и каталоги ссылок, Чаты и общение, Электронная почта, Открытки, Статистика, Защита, Игры, Мультимедия и музыка, Тесты и викторины, Доски объявлений, Знакомства, обратная связь, галерея, календарь, рассылка/авторассылка и т.д.

Для используемых форм предусмотреть обязательные для заполнения поля формы. Выполнить проверку числовых или строковых полей на клиенте и на сервере. Для проверки данных использовать JavaScript или PHP.

Для хранения информации предусмотреть использование a) файл b)БД MySql.

Список заданий

1. Загрузка файла на сервер. Просмотр каталога из клиентской формы. Выбор файла и загрузка на сервер

2. Система отправки писем Send Mail. Отправка e-mail. E-mail с вложенными файлами. Интерфейс:

- Имя.

- e-mail.

- Отправить.

- Обратная связь или «контакты».

3. Рекомендация другу. На указанный e-mail оправляется письмо со ссылкой и рекомендациями, подписанные вами.

4. Система рассылки SMS - сообщений. Поддержка мобильной связи.

5. Система рассылки ICQ - сообщений.

6. Получение информации о клиенте и сервере.

7. Регистрация на сайте. Заполнить регистрационную форму: Фамилия, Имя, Город, E-Mail, login.

Система должна сгенерировать уникальный password. После регистрации отослать password по E-Mail.

8. Авторизация посетителя на сайте (логин, пароль, смена пароля и т.д.).

9. Счетчик посещений Counter – текстовый и графический.

10. HTTP Аутентификация и приветствие зарегистрированного клиента.

Интерфейс: Не видели Вас две недели Сэр. Рады видеть Вас снова на нашем сайте.

11. Удаленный web-counter. Необходимо реализовать службу наподобие RAMBLER:TOP100. Интерфейс: пользователь регистрируется и получает идентификатор. Таким образом он связывает свою страницу с сервером- носителем web-couter-а. После этого служба должна вести учет посетителей страницы пользователя.

Необходимо осуществить администраторские функции по включению и исключению произвольного пользователя администратором.

12. Откуда заходят посетители или поисковые машины. Адрес, IP- адрес, государство.

13. Подсчет on-line посетителей на сайте.

14. Администрируемая Гостевая книга.

- Имя:

- e-mail:

- Сайт:

- Город:

- Сообщение:

- Отправить

Интерфейс: пользователь заходит на страницу гостевой книги, на которой он сможет ввести сообщение, а также просмотреть сообщения оставленные другими пользователями. Создать две кнопки “Ввести” и “Просмотреть”.

Должны быть выполнены такие администраторские функции как включение и исключение сообщения в гостевой книге, запрет и управление запретом на включение сообщения содержащее определяемые администатором выражения, запрет и управление запретом на включение сообщения с заданных администатором хостов.

Помимо указанных пунктов можно предусмотреть:

1. Ответ администратора

2. Шаблон вывода.

3. Фильтр слов.

4. Смайлы

15. Голосование.

Интерфейс:

Как жизнь?

.Отлично

.Хорошо

.Средне

.Плохо

.Хуже плохого





Дата публикования: 2014-11-18; Прочитано: 596 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.016 с)...