- •Оглавление
- •Что такое интернет
- •Готовимся к созданию Web-страниц
- •Железо, железо и еще раз железо...
- •Домашняя эргономика — безопасность прежде всего!
- •Программное обеспечение для Web-мастера
- •Выбор хостинга
- •Знакомьтесь — РНР
- •История создания РНР
- •Установка РНР
- •Настройка РНР для Apache
- •Виртуальные хосты в Apache
- •Тестирование РНР
- •Установка и настройка дополнительных модулей
- •Переносимость и совместимость
- •Синтаксис РНР
- •Возможности РНР
- •Работа с базами данных
- •HTTP-аутентификация средствами РНР
- •Работа с изображениями
- •Поддержка закачки файлов
- •Поддержка HTTP-cookie
- •Использование регулярных выражений
- •Обработка ошибок
- •Управление электронными письмами
- •Вывод на экран и переменные в РНР
- •Простейшие арифметические операции
- •Простейшие логические операции
- •Циклы
- •Массивы
- •Работа со строками
- •Сессии
- •Программирование на РНР
- •Сравнение чисел
- •Вложение файлов в документ
- •Простейший счетчик посещений
- •Обработка форм
- •Отправление почты
- •Отправление письма в HTML-формате
- •Дата по-русски
- •Счетчик посещений с использованием базы данных
- •Счетчик персональной посещаемости
- •Сохраняем информацию о посещениях
- •Ах, баннеры, баннеры...
- •Счетчик посещений с выводом информации на экран
- •Счетчик сессий
- •Создание динамического меню
- •«Грабим» странички
- •Голосование на сайте
- •Гостевая книга
- •Технология создания
- •Свой чат — это просто
- •Использование специального привата
- •Интернет-магазин
- •Технология создания
- •Сервисы интернет-магазина
- •Архив рассылок
- •Совет первый: а нужно ли вам это?
- •Совет второй: забудьте все советы
- •Пример системы безопасности
- •HTTP-аутентификация в РНР
- •Защита программы
- •РНР в вопросах и ответах
- •Приложения
- •Приложение 3. Некоторые функции РНР
- •Приложение 4. Cookie
- •Приложение 5. Методы передачи данных POST и GET
- •Приложение 6. Время Unix
130 |
Программирование на РНР |
И наконец, пришла пора вывести результаты на экран. Перевод строки в HTML осуществляется при помощи тега <br>.
Когда отформатированные результаты выведены, скрипт заканчивает свою работу. Этот блок можно организовать по-разному, но примененный мной метод самый простой. Лучше всего оформить результаты в таблице, тогда выведенная информация будет смотреться красивее. Обратите внимание: эта часть скрипта выполняется в любом случае, как и считывание данных из файла. Таким образом, достигается гарантированный вывод результатов на экран.
Вот и вся работа. Надеюсь, что вы теперь без труда сможете организовывать опросы своих посетителей на различные темы. Кроме того, голосование можно оснастить другими полезными функциями: например, подсчетом процентного соотношения голосов, графическим представлением результатов, запоминанием IP-адреса опрошенного, чтобы дважды не голосовали и т.д. Только в таких случаях вам придется проявить собственную фантазию и знание элементарной алгебры.
Гостевая книга
Когда сайт крепко становится на ноги и выходит из стадии младенчества, Web-мастер задается вопросом: как узнать, что именно хотят его посетители, что нравится и что не нравится им на сайте? Все это легко исследовать, установив так называемую «гостевую книгу», в которую посетители будут заносить свои впечатления и пожелания. Созданием гостевой книги сейчас и займемся.
Нам понадобятся два файла. В первом (назовем его guest.phtml) разместятся форма для ввода данных и сам скрипт гостевой книги, а во втором будут храниться результаты введенных данных в специальном формате. Не забывайте, что после закачки на сервер этих двух файлов на файл с результатами (guest.txt) нужно будет установить атрибуты, разрешающие запись в файл. Сделать это можно практически в любом из FTP-менеджеров, проверив атрибуты уже закачанного на сервер файла и установив в настройках все галочки.
Гостевая книга |
131 |
Теперь перейдем к коду. Он должен быть добавлен в файл guest.phtml. Сначала сделаем форму для ввода данных:
<h2>Гостевая книга</h2>
<form action="guest.phtml" method="post"> Введите e-mail: <input type="text" name="email">
Ваше имя: <input type="text" name="name">
Сообщение: <br><textarea name="msg" rows="10" cols = "40"></textarea>
<p><input type="submit" value="0тправить"></р>
В этой форме три поля — адрес электронной почты (переменная email), имя посетителя (переменная name) и сообщение (переменная msg) (рис. 23).
Рис. 23. Форма гостевой книги
132 |
Программирование на РНР |
После того как посетитель введет данные и нажмет на кнопку «Отправить», все эти переменные будут доступны нашему скрипту, причем значения переменных будут соответствовать введенным данным. Теперь нужно все это обработать.
Определим имя файла, в который будем записывать данные, и максимальное количество сообщений, которое может быть выведено на экран:
<?
$files = "guest.txt";
$qq = 50;
Дальше:
if (!$email) { $email = "нет"; } $msg = substr($msg,0,999); $email = substr($email,0,39); $name = substr($name,0,39);
Здесь введенные данные обработаны таким образом, чтобы переменная адреса не была пустой (то есть если туда ничего не ввели, она равна строке "нет"). При этом каждая переменная обрезается, чтобы ограничить количество вводимых символов. Это нужно для защиты от действий вредных посетителей, которые ради баловства начинают вводить в гостевую книгу массу информации, которая никому не нужна.
Проверим, не являются ли сообщения или имя пустыми строками:
if ($msg != "" && $name != "") {
Если сообщение или имя не указаны вообще, скрипт ничего никуда не запишет, а просто продолжит обработку дальше и выведет сообщения гостевой книги на экран (см. ниже). Но если и имя, и сообщение введены, скрипт, прежде чем вывести данные на экран, должен сделать запись отформатированных данных в файл для сообщений:
Гостевая книга |
133 |
$time = D a t e ( " h : i : M : d " ) ; |
|
$soo = "\n<b>$time $name (<a href=\"mailto: $email \"> $email </a>) </b><br> $msg<hr>";
$fp = fopen($files, "a+"); $fw = fwrite($fp, $soo); fclose($fp); }
В этом коде сначала определяем и форматируем время ввода сообщения. Потом формируем строку для записи в файл. Она представляет собой последовательность нужных переменных, отформатированных тегами HTML. За счет этого нам потом будет очень легко просматривать архив сообщений и выводить на экран нужный промежуток (если количество сообщений превысит 100, вы это оцените — очень удобно указать ссылку и смотреть сообщения, например, с 50-го по 80-е). После того как строка подготовлена, она записывается в файл. Дальше — вывод результатов записи:
$lines = file ($files);
$а = count($lines);
$u = $a - $qq;
for($i = $a; $i >= $u ;$i-) { echo $lines[$i]; } /* вывод результатов на экран */
?>
Обратите внимание, что в первый раз, когда посетитель попадает на страницу с гостевой книгой, обработка этого кода идет сразу, так как переменные имени и сообщения пусты.
Этим кодом в массив считывается файл сообщений, и при помощи цикла выводится на экран его содержимое. Если количество сообщений превысило наше ограничение, они просто не показываются. Новые сообщения всегда отображаются вверху, около формы для ввода, так как вывод идет снизу вверх по индексу массива. Это очень удобно, но при желании может быть изменено.
