Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Информационный Канал Subscribe.Ru

Здравствуйте! Выпуск номер 74
рассылки сайта РНР для всех!

Форум сайта / Сайт автора

Важная информация для подписчиков:

  • Сайт, который представляет всю информацию о нужном для вас хостинге с полной поддержкой PHP + MySQL - http://bel-host.info (от 5 у.е. за год включая панель управления + все, что необходимо для работы сайта + поддержка, все кроме места и трафика неограничено!). Регистрация доменов по низким ценам. Более 20 способов оплаты услуг!

  • Если вас интересует возможность быстрой разработки скриптов и приложений для сети Интернет под ваши нужды, или вам необходима помощь специалиста в поддержке и развитии собственных систем (сайтов, страничек и т.д.), пишите на адрес: virtualphp@tut.by - с темой "разработка".

  • По поводу размещения информации в этой рассылке обращайтесь на адрес: virtualphp@tut.by

  • Международный Интернет-банк позволит вам принимать и оплачивать счета более чем 20-ю способами. Кроме того - в ваше распоряжение предоставляются кредитный и инвестиционный счета (пока 16% годовых), возможность вывода денег любым удобным для вас способом (к примеру, СберБанк России, Webmoney и т.д., всего более 20 способов).

Сегодня я хочу повторно опубликовать свою старую статью, на примере которой можно понять, как в РНР организуется работа с файлами. Еще раз напоминаю - информация носит чисто теоретический характер, и является только примером работы, на ее основе нужно учиться программировать свои скрипты. Буду благодарен за любые отзывы и рекомендации. А так же приглашаю авторов воспользоваться случаем и опубликовать в рассылке свои статьи.

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

То, что знать мнение других о себе и о своем детище иногда полезно, никто не спорит. Когда сайт крепко становится на ноги, и выходит из стадии младенчества, 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>
<p><input type=submit value="
Отправить "></p> 

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

Вот как может быть реализовано удаление тегов. Это всего лишь пример, но вы легко сможете адаптировать его для собственных нужд:

<?
$st = "
<b>Жирный текст</b>
<tt>Моноширинный текст</tt>
<a href='http://www.dklab.ru'>Ссылка</a>
a<x && y>d
";
echo "Исходный текст: $st";
echo "<hr>После удаления тэгов: ".strip_tags($st,"<tt><b>");
?>

( пример взят из пакета Денвер, очень рекомендую начинающим для отладки своих скриптов. Сайт - http://faq.dklab.ru/denwer/ )

 

Рекомендуем посетить:

http://virtual.brest.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://bel-host.info - хостинг по самым маленьким ценам - от 5 у.е. за 1 год! Ограничены только место и трафик, все остальное в любых количествах!
http://204040.com - Интернет-магазин компьютерного салона Успех г. Брест
Международный Интернет-банк - прием и оплата более чем 20-тью способами.
Книги с доставкой по республике Беларусь -  - а так же софт, и много других товаров

автор рассылки Андрей Кухарчик / http://php.virtualbrest.com


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: inet.webbuild.php3programm
Отписаться
Вспомнить пароль

В избранное