
- •В.С. Романчик
- •Глава 2. Использование php.
- •Глава 3.
- •Введение
- •Возможности php.
- •Инструменты для разработки
- •Как php работает
- •Глава 1. Язык php Типы данных
- •Массивы и инициализация массивов
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и директива error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Некоторые улучшения в организации работы с данными
- •Передача данных от клиента к серверу и от сервера клиенту
- •Клиентские методы http get, post, head
- •Обработка html-форм и передача переменных в скрипт.
- •Передача значений переменных по методу get
- •Ниже рассмотрен еще один пример передачи данных из клиентской формы на сервер по методу get
- •Передача данных на сервер по методу post
- •Php и обработка различных форм
- •Примеры обработки форм
- •Работа с e-mail
- •Отправка почты на php (Функция mail)
- •Cookies-наборы: сохраненное состояние
- •Сессии (Сеансы) Переменные сеанса
- •Отмена регистрации сеансовых переменных
- •Работа с сеансовыми переменными
- •Постоянные данные, использующие сеансы и cookie-наборы
- •Вывод графических данных с помощью рнр Основной способ создания изображений
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Работа с палитрой изображения
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование специальных стилей для заливки
- •Использование шрифтов и вывод строк
- •Манипулирование и копирование изображений
- •Создаём графический информер на php
- •Слияние изображений с помощью gd
- •Включения удаленных файлов
- •Различные приложения и полезные скрипты на php
- •Пример. Определение типа и версии браузера
- •Генератор паролей на php
- •Время выполнения скрипта
- •Календарь
- •Загрузка файла от клиента на сервер
- •Работа с ftp на уровне php
- •Сбор статистики на php
- •Проверка ввода емайл
- •Чтение почты через Web-интерфейс
- •Разработка собственных листов рассылки
- •Рассылаем письма
- •Добавляем адреса в список рассылки
- •Редактирование адресов
- •Автоответчик
- •Почтовые функции в рнр
- •Задания для выполнения
- •Приложение 1. Протокол передачи гипертекстов http
- •Клиентские методы и заголовкиHttp
- •Указатель ссылки ("Referer")
- •Медиа-типы
- •Кодирование
- •Безопасность и авторизация
- •Кэширование содержимого http на стороне клиента
- •Http идентификация с php
- •Сжатие данных в протоколе http
- •Модель ajax: между загруженной в браузер страницей и сервером появляется прослойка - уровень ajax, который обеспечивает следующую последовательность выполнения приложения.
- •Класс xmlHttpRequest
- •Методы класса xmlHttpRequest
- •Свойства класса xmlHttpRequest
- •Создание экземпляра объекта xmlHttpRequest
- •Использование dom
- •Проблема с кешированием
- •Информируйте пользователя
- •Нет принципов написания кода
- •Аутентификация средствами php
- •Отделение клиентская части программы от серверной части и шаблоны
- •Использование шаблонов в php
- •Шаблоны подстановки
- •Создаем свои шаблоны в php
- •Теги, атрибуты, значения
- •Структура документа
- •Разрыв строки
- •Предварительное форматирование
- •Комментарии
- •Физическая и логическая разметка документа
- •«Физические» теги:
- •«Логические» теги:
- •Специальные символы
- •Графика
- •Формы html
- •Метатеги
- •Способы включения каскадных таблиц стилей
- •Синтаксис
- •Группирование
- •Наследование
- •Множественные классы.
- •Селекторы идентификаторов (id-селекторы).
- •Комментарии
- •Свойства шрифтов.
- •Свойства текста.
- •Представление документа в виде специальных областей – блоков
- •Отступы, поля, позиционирование.
- •Границы элементов.
- •Визуальные эффекты
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Различные свойства
- •Css. Примеры
- •Типы данных
- •Ассоциированные массивы
- •Операторы
- •Подпрограммы
- •Приложение 11. Популярные веб-приложения и фреймворки
- •Фреймворки
Передача значений переменных по методу get
При использовании метода GET все данные упаковываются в адресную строку. Причем происходит это следующим образом: вначале имена переменных и их значения преобразуются в вид, безопасный для передачи в строке URL . После этого все данные собираются в одну строку к виду name=value, отделяясь друг от друга знаком & (амперсанд). Происходит это таким образом:
http://site.domain/action.php?имя=значение&имя=значение
Пары "имя=значение" создаются для каждого элемента ввода и попадают скрипту, который должен извлечь из строки названия переменных и их значения. В отличие от других языков программирования, PHP делает всю работу по расшифровке строки запроса, переданной методом GET, на себя и предоставляет уже готовые для использования в скрипте переменные. Причем имя переменной образуется из имени, указанного в соответствующем элементе формы. Если пользователь ввел в строке $name запроса имени "Беб", то в скрипте автоматически появится переменная $name, которая будет иметь значение "Беб".
Строка запроса может содержать не более 254 символов. Это одно из ограничений метода GET, которое не позволяет передавать объемные данные. Все данные, передаваемые этим способом, общедоступны и могут быть прочитаны кем угодно. Поэтому им не рекомендуется пользоваться для передачи секретной информации - например паролей.
Еще один способ состоит в передаче данных по методу GET через строку URL вида:
<a href='pr421.php?a=1&b=2&c=3'>. Рассмотрим пример:
<!—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>
</form>
</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 заключается в способе передачи информации. В методе GET параметры передаются через адресную строку, по сути в HTTP-заголовке запроса. В методе POST параметры передаются через тело HTTP-запроса и не отражаются в адресной строке. Метод POST, в отличие от GET, передает все данные на стандартный вывод. Соответственно, и ограничений на длину информации нет.
Какой из этих методов лучше? Для передачи информации, вводимой в форме, в большинстве случаев лучше подходит метод POST. А в случае динамических сайтов, когда показываемая страничка определяется не только адресом, но и переменными (интернет-магазин), может оказаться лучше использовать метод GET.
При исполнении скрипта на PHP создаются переменные с именами, соответствующими именам полей и содержащие соответствующие значения.
Предположим, что мы создали форму следующего вида:
<form action="multi.php" method="POST">
<input type="text" NAME="first" SIZE="4" MAXLENGTH="4">
< input type ="text" NAME="second" SIZE="4" MAXLENGTH="4">
< input type ="Submit" VALUE="Умножить">
</form>
Скрипт, содержащийся в файле multi.php может выглядеть следующим образом:
<?php
//$first=$_POST['first']; $second=$_POST['second'];
echo "$first умножить на $second получится ", $first*$second;
?>
Вывод:
5 умножить на 6 получится 30
Существует специальный тип поля HIDDEN. Это поле, которое не выводится на экран, но, если ему присвоено имя атрибутом NAME, значение его передается в форму. С помощью такого поля можно задать тип действия, которое мы хотим произвести с данными формы.
PHP воспринимает массивы в контексте переменных формы. Можно группировать взаимосвязанные переменные вместе:
<form action="array.php" method="post">
Имя: <input type="text" name="user[name]"><br>
E-mail: <input type="text" name="user[email]"><br>
Хобби: <br>
<select multiple name="hobbi[]">
<option value="книги">Книги
<option value="компьютер">Компьютер
<option value="музыка">Музыка
<option value="спорт">Спорт
</select>
<input type="submit" value="Отправить">
</form>
Теперь создадим сам PHP-скрипт array.php, обрабатывающий эту форму:
<?php //array.php
/* выводим выбранные в форме переменные */
print "user[name]:$user[name]<BR>";
print "user[email]:$user[email]<BR>";
print "hobbi:$hobbi[0]";
?>
Вывод:
user[name]:rrrrrrrr
user[email]:yyyyyyyyyy
hobbi:спорт
В результате обработки этой формы PHP создаст ассоциативный массив user[] с элементами $user[name] и $user[email], и массив hobbi[] с элементами $hobbi[0], $hobbi[1], $hobbi[2], $hobbi[3]. Пользователь имеет возможность сделать множественный выбор, т.е. указать в качестве выбора hobbi[0]: книги, компьютер, музыка, спорт.