Первый сайт на PHP



Внешний вид гостевой книги и файлов с ее сообщениями - часть 3


$nom=substr(basename($PHP_SELF), 0, -4);

Если эту команду определения имени файла без расширения включить в самое начало кода файла niz.php, то установку значения переменной Snom на web-страницах, содержащих гостевые книги, можно убрать - достаточно одного оператора include:

<?php include ("niz.php"); "?>

...и абсолютно вся программа гостевой книги поместится в одном файле. Вам останется лишь вставлять его командой include всюду, куда захотите (да разве что еще саму папку для сообщений создать вручную вначале).

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

Бесспорно, данный код можно улучшать. Можно, например, сделать так, чтобы на странице отображались не сразу все сообщения, а лишь часть, скажем, последний десяток. Для этого следует немного изменить код вывода сообщений, вместо конструкции foreach использовав, скажем, оператор for в том случае, если количество сообщений больше десяти:

<?php

$dirct="gb";

$nom=substr(basename($PHP_SELF), 0, -4);

if ($otziv!=B")

{

$otznam=$nom.time();

$hdl = fopen("$dirct/$otznam", "w+")

fwrite($hdl, nl2br(strip_tags($HTTP_POST_VARS['otziv']))

fclose($hdl); }

$hdl=opendir($dirct); while ($file = readdir($hdl)) {

if (strstr($file, $nom)==True) { $a[]=$file;

$1=sizeof($a); if ($l!=0) {

rsort($a);

if ($l>10)
{

for ($i = 0; $i < 10; $i++)

{

include ("$dirct/$a[$i]n);

echo ("<br>(разделитель сообщений)");

else

foreach ($a as $k)
{

include ("$dirct/$kB);

echo ("<br>(разделитель сообщений)");
}

}

}
?>

Ваш комментарий:

<form method="post" action="<?php echo ($nom.".php"); ?>" name="form">

<textarea name="otziv" cols="60" rows="10" wrap="virtual"></textarea>

<input name="submit" type="submit" value="Послать отзыв">

</form>

(Измененная часть кода выделена жирным.)

Тогда на странице отобразятся лишь последние 10 сообщений. (Код, выводящий остальные сообщения так же, по десяткам, сделайте самостоятельно.)

Так что, как видите, сделать гостевую книгу на РНР не просто, а очень просто. Весь ее код уместится на одном экране, даже на мониторах с небольшим разрешением. Но даже такой простой скрипт таит в себе немало возможностей для творчества.




Содержание  Назад