PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic WEB разработка *NIX CouchDB Hack Python
Главная Статьи PHP Гостевая – это просто
Главная
 Главная  Контакты
 
Программинг
Статьи Книги ЧаВО
 
xBOOKi
Fresh Books Операционки Сети
 
Поиск
-------
 
Counters
Яндекс цитирования
Rambler's Top100
-------
 
CryptDisk.4h
Программа которая позволяет создать виртуальный шифрованный логический диск.

cryptdisk.4hack.com

-------
 
 

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

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

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

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

 

Гостевая книга

 

 

 

Введите email:

Ваше имя:

Сообщение:



Только что мы определили форму с тремя полями – адрес (переменная 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$time $name (

$email )
$msg


";

 

$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]; }

?>

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

Вот и все! В файл для сообщений ничего записывать не нужно – он будет заполняться по мере ввода данных. Архив сообщений всегда будет доступен, если Вы поставите ссылку архив. Нужно заметить, что код не учитывает ввод посетителем тегов HTML. Но это уже несколько иная задача, и сделать это легко, если только нужно. Использоваться этот скрипт может в любом месте, где нужно узнать мнение посетителей например, о статье, о новостях и т.д. Так же это – простейший форум.

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

Андрей Кухарчик, admin@virtualbrest.com
http://virtual.brest.by/



Свежее
Резервное копирование rsync-ом
DNS Amplification (DNS усиление)
Алгоритм Шинглов — поиск нечетких дубликатов текста
Metasploit Framework. Обзор
Использование CouchDB
-------



 
Copyright © 2003-2009   Frikazoid.
Rambler's Top100