На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » Сайтостроительство » Web-программирование

Гостевая - это просто

То, что знать мнения других о себе и о своем детище иногда полезно, никто не спорит. Когда сайт крепко становится на ноги, и выходит из стадии младенчества, Web-мастер задается вопросом - как бы мне узнать, что именно хотят мои посетители, что волнует их и что не нравится на сайте? Все эти вопросы легко исследовать, установив гостевую книгу. Именно этим мы сейчас и займемся.

Для начала Вам нужен сайт, размещенный на хостинге, где поддерживается гипертекстовый препроцессор РНР. Это - очень простой и несложный язык программирования, и именно на нем и будет написана наша гостевая книга. Все, что понадобиться, это два файла. В первом будут размещены форма для ввода данных и сам скрипт гостевой, а во втором - храниться результаты введенных данных в специальном формате. Давайте обзовем их соответственно guest.phtml и guest.txt. Не забывайте, что после закачки на сервер этих двух файлов на файл с результатами (guest.txt) нужно будет установить атрибуты, разрешающие запись в файл. Сделать это можно практически в любом из FTP-менеджеров, проверив атрибуты уже закачанного на сервер файла, и установив в настройках все галочки. Теперь перейдем непосредственно к коду. Напоминаю, он должен быть введен в файл guest.phtml.

Для начала, делаем форму для ввода данных. Оформить Вы сможете ее сами по собственному вкусу, так что я сосредоточусь на сути.

<h2>Гостевая книга</h2>

<form action=guest.phtml method=post>
Введите email: <INPUT TYPE=TEXT NAME=email><BR>
Ваше имя: <INPUT TYPE=TEXT NAME=name><BR>
Сообщение: <br><textarea name="msg" rows=10 cols=40></textarea>
<br><input type=submit value="Отправить ">
<br><br>

Только что мы определили форму с тремя полями - адрес (переменная email), имя (переменная name) и сообщение (переменная msg). После того, как посетитель введет данные, и нажмет на кнопку Отправить, все эти переменные будут доступны нашему скрипту, причем значение переменных будет соответствовать введенным данным. Теперь нужно все это обработать.

<?
$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 != "") {

Очень важный момент: если сообщение или имя не указаны вообще, скрипт ничего никуда не записывает, а просто продолжит обработку дальше, где выведет сообщения гостевой книги на экран. Но если и имя и сообщение введены, скрипт прежде чем вывести данные на экран, должен сделать запись отформатированных данных в файл для сообщений.

$time = Date("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. За счет этого нам дальше будет очень легко просматривать архив сообщений и выводить на экран нужный промежуток (если количество сообщений превысит сотню, вы это оцените - очень удобно поставить ссылку, и смотреть сообщения с 50-го по 80-е, например). После того, как строка для записи подготовлена, она записывается в файл. Дальше - вывод результатов записи.

Обратите внимание, что в первый раз, когда посетитель попадает на страничку гостевой, идет обработка сразу этого кода, так как переменные имени и сообщения пусты.

$lines = file($files);
$a = count($lines);
$u = $a - $qq;
for($i = $a; $i >= $u ;$i--) { echo $lines[$i]; }
?>

Тут все очень просто. В массив считывается файл сообщений, и в цикле выводятся на экран его содержимое. Если количество сообщений превысило наше ограничение, они просто не показываются. Причем - новые сообщения всегда вверху, около формы для вода, так как вывод идет снизу вверх по индексу массива. Это очень удобно, но при желании может быть изменено.

Вот и все! В файл для сообщений ничего записывать не нужно - он будет заполняться по мере ввода данных. Архив сообщений всегда будет доступен, если Вы поставите ссылку <a href=guest.txt>архив</a>. Нужно заметить, что код не учитывает ввод посетителем тегов HTML. Но это уже несколько иная задача, и сделать это легко, если только нужно. Использоваться этот скрипт может в любом месте, где нужно узнать мнение посетителей например, о статье, о новостях и т.д. Так же это - простейший форум.

И еще - взять в Интернете готовый код и эту статью можно по адресу http://virtual.bresttelecom.by/guest.zip. А посмотреть как все это работает на деле - по адресу http://virtual.bresttelecom.by в разделе Гостевая.

Андрей Кухарчик
Виртуальный Брест

Спонсор раздела

Рассылки Subscribe.ru:

Библиотека сайтостроительства - новости, статьи, обзоры
Дискуссионный лист для web-разработчиков
Подписка на MailList.Ru
Автор: NunDesign
Другие разделы
Оптимизация сайтов
Web-студии
» Новое в разделе
Web-дизайн
Web-программирование
Интернет-реклама
Раскрутка сайта
Web-графика
Flash
Adobe Photoshop
Рассылка
Инструменты вебмастера
Контент для сайта
HTML/DHTML
Управление web-проектами
CSS
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100