Гостевая книга
Настаивать на том, чтобы в качестве индекса гостевой книги использовать имя страницы, на которой она располагается, именно без расширения, не обязательно – если этого не сделать, то в результате работы рассмотренного сценария сообщения будут помещаться в файлы, имена которых будут начинаться с этого полного имени (т. е. вместе с расширением) – всего лишь небольшое косметическое неудобство.
Бесспорно, данный код можно улучшать. Можно, например, сделать так, чтобы на странице отображались не сразу все сообщения, а лишь часть, скажем, последний десяток. Для этого следует немного изменить код вывода сообщений, вместо конструкции 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 сообщений. (Код, выводящий остальные сообщения так же, по десяткам, сделайте самостоятельно.)
Так что, как видите, сделать гостевую книгу на РНР не просто, а очень просто. Весь ее код уместится на одном экране, даже на мониторах с небольшим разрешением. Но даже такой простой скрипт таит в себе немало возможностей для творчества.