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

"PHP" для начинающих.Описание простейших php-скриптов. Пишем гостевую книгу.


Новости сайта wzone.net.ru

Добавлена новые статьи в рубрике сети,рассматриваются среды передачи информации,особенности стандарта Wi-Fi, чтобы ознакомиться перейдите по ссылке http://wzone.net.ru/network.php

Добавлен каталог сайтов,вы можете добавлять свои интернет ресурсы,перейдя по этой ссылке http://wzone.net.ru/catal/add.php

Пишем Гостевую книгу

Работу этого скрипта вы можете увидеть на сайте wzone.net.ru
Доброго времени суток, Уважаемые подписчики!

Рассмотрим скрипт простой гостевой книги,которая позволит вам собирать отзывы о вашем интернет-ресурсе,отвечать на e-mail и видеть время добавления сообщения.

Гостевая книга написана на "файлах" и состоит из 4-х файлов:

  • страница вывода сообщений (guest.php)
  • страница добавления сообщений (form.php)
  • файл обработки введенных данных (add.php)
  • файл где хранятся сообщения (guest.txt)

Рассмотрим страницу вывода сообщений (guest.php):

<?
echo"<p><a href=form.php?error>Добавить сообщение</a></p>";
$xfile1 = @file("guest.txt");
$xfile=array_reverse($xfile1);
$a=count($xfile);
$p=10;
$kol_st=ceil($a/$p);
$k=0+($p*$str);
$j=$p+($p*$str);
if($j>$a){$j=$a;};
for ($i=$k;$i<$j;$i++)
{
$udata = explode("#",$xfile[$i]);
echo"<p><b>Имя:$udata[0]</b><br><b>e-mail:</b><a href=mailto:$udata[1]>$udata[1]</a><br><b>Сообщение:</b>$udata[2]<br><small><b>добавлен:</b>$udata[3]</small></p>";
};
echo"<p align=center><br><br>";
if ($str>0){$id1=($str-1);print"<a href=guest.php?str=$id1>назад</a>";};
print" | ";
if($str<$kol_st-1){$str=($str+1);print"<a href=guest.php?str=$str>вперед</a>";};
print"<br>всего страниц: $kol_st";
print"<br>всего записей: $a";
echo"</p>";
?>

Рассмотрим код подробнее:
echo"<p><a href=form.php?error>Добавить сообщение</a></p>"; ссылка для добавления нового сообщения, параметр error будет необходим в дальнейшем
$xfile1 = @file("guest.txt");
$xfile=array_reverse($xfile1);
$a=count($xfile);
считываем сообщения в массив,сортируем его в обратном порядке и определяем количество сообщений

$p=10;
$kol_st=ceil($a/$p);
$k=0+($p*$str);
$j=$p+($p*$str);

if($j>$a){$j=$a;};

сейчас следует код,который позволит нам дробить сообщения на страницы.$p=10; здесь определяется количество выводимых сообщ на странице. в $kol_st мы вносим количество полных и неполных страниц.

$k и $j будут задавать с какого сообщения начинать вывод на данной странице и каким закончить вывод.

if($j>$a){$j=$a;}; в этом коде если $j получается больше чем общ количество сообщ,то приравниваем эти две переменные

for ($i=$k;$i<$j;$i++)
{
$udata = explode("#",$xfile[$i]);
echo"<p><b>Имя:$udata[0]</b><br><b>e-mail:</b><a href=mailto:$udata[1]>$udata[1]</a><br><b>Сообщение:</b>$udata[2]<br> <small><b>добавлен:</b>$udata[3]</small></p>";
};
в этом цикле мы с каждым его шагом разбываем каждую строку извлеченную из guest.txt на части разделенные символом # и заносим ити данные в массив $udata и с кажд шагом выводим кажд из этих частей в результате получается блоки текста в кажд из которых:имя,адрес почты,сообщение и дата добавления
echo"<p align=center><br><br>";
if ($str>0){$id1=($str-1);print"<a href=guest.php?str=$id1>назад</a>";};
print" | ";
if($str<$kol_st-1){$str=($str+1);print"<a href=guest.php?str=$str>вперед</a>";};
print"<br>всего страниц: $kol_st";
print"<br>всего записей: $a";
echo"</p>";
в данном коде мы определяем вывод ссылок вперед и назад,а также количество записей и страниц в гостевой книге
 
Рассмотрим страницу добавления сообщений:
<?
if (!empty($error)){echo"<font color=\"red\"><b>введены не все данные</b></font><br>";};
echo"
<form name=\"form1\" method=\"post\" action=\"add.php\">
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"11%\" valign=\"top\" scope=\"col\"><p><strong>Ваше имя: </strong></p>
<p><strong> Ваш e-mail:</strong></p>
<p><strong>Сообщение:</strong></p></td>
<td width=\"89%\" scope=\"col\"><p>
<input name=\"name\" type=\"text\" size=\"30\" maxlength=\"30\">
</p>
<p>
<input name=\"mail\" type=\"text\" size=\"30\" maxlength=\"30\">
</p>
<p>
<textarea name=\"mess\" cols=\"40\" rows=\"5\"></textarea>
</p>
<p>
<input type=\"reset\" name=\"Submit\" value=\"сброс \">
<input type=\"submit\" name=\"Submit\" value=\"добавить\">
</p></td>
</tr>
</table>
</form>
";
?>

Рассмотрим код подробнее:

if (!empty($error)){echo"<font color=\"red\"><b>введены не все данные</b></font><br>";}; данный код выводит сообщ об ощибке,если заполнены не все поля
<form name=\"form1\" method=\"post\" action=\"add.php\">
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"11%\" valign=\"top\" scope=\"col\"><p><strong>Ваше имя: </strong></p>
<p><strong> Ваш e-mail:</strong></p>
<p><strong>Сообщение:</strong></p></td>
<td width=\"89%\" scope=\"col\"><p>
<input name=\"name\" type=\"text\" size=\"30\" maxlength=\"30\">
</p>
<p>
<input name=\"mail\" type=\"text\" size=\"30\" maxlength=\"30\">
</p>
<p>
<textarea name=\"mess\" cols=\"40\" rows=\"5\"></textarea>
</p>
<p>
<input type=\"reset\" name=\"Submit\" value=\"сброс \">
<input type=\"submit\" name=\"Submit\" value=\"добавить\">
</p></td>
</tr>
</table>
</form>
";
?>
весь остальной код-это форма состоящая из 3-полей и кнопок отправки и сброса
файл обработки введенных данных (add.php)
<?
if ($name!=="" && $mail!=="" && $mess!=="")
{$z=1;}else{$z=0;};

if ($z==1)
{
$time=date("d.m.Y г. в H:i");
$ob_stat="$name#$mail#$mess#$time";
$ob_stat=strip_tags($ob_stat);
$file=file("guest.txt");
$counter=count($file);
$fp=@fopen("guest.txt","a"); fputs($fp,"$ob_stat \r\n"); @fclose($fp);
header("Location:guest.php?str");
}else

{header("Location:form.php?error=1");};

?>

Рассмотрим код подробнее
f ($name!=="" && $mail!=="" && $mess!=="")
{$z=1;}else{$z=0;};
Здесь мы рассматриваем условие,если в одно из полей не введено ничего,если это так то $z=0
if ($z==1)
{
$time=date("d.m.Y г. в H:i");
$ob_stat="$name#$mail#$mess#$time";
$ob_stat=strip_tags($ob_stat);
$file=file("guest.txt");
$counter=count($file);
$fp=@fopen("guest.txt","a"); fputs($fp,"$ob_stat \r\n"); @fclose($fp);
header("Location:guest.php?str");
}
Если все поля заполнены,то мы определяем время,заносим имя,адрес,сообщение и время в переменную $ob_stat с разделителем # далее удаляем теги,если таковые были,добавляем наши данные в существующий файл с данными,затем направляем на странцу вывода сообщений

else

{header("Location:form.php?error=1");};

если одно из полей не заполнено,то перенаправляем на страницу добавления сообщ с error=1,а там выводится сообщ об ошибке
Теперь остается залить все 4 файла на сервер и запустить файл guest.php и незабудте установить права на запись в текстовый файл.
Новости сайта wzone.net.ru

Добавлена новые статьи в рубрике сети,рассматриваются среды передачи информации,особенности стандарта Wi-Fi, чтобы ознакомиться перейдите по ссылке http://wzone.net.ru/network.php

Добавлен каталог сайтов,вы можете добавлять свои интернет ресурсы,перейдя по этой ссылке http://wzone.net.ru/catal/add.php


В избранное