Есть собственно ручно написанный скрипт добавления и просмотра комментариев, на PHP. Однако там не работает одна фича - вывод сообщений об ошибках при незаполнении полей (name и message).
Пример скрипта здесь:
http://basketchance.kulichki.ru/text...t_13_rules.php
Скрипт вызывается таким образом:
PHP код:
<?
session_start();
require "http://basketchance.kulichki.ru/comments.php?path=texts%2Fhistory%2Ffirst_13_rules.&txt=texts%2Fhistory%2Ffirst_13_rules.txt&";
?>
Сам скриптик:
PHP код:
<?
session_start();
if (!isset($_POST["file_name"])) {
if (!$_SESSION["error_name"] && !$_SESSION["error_message"]) {
$_SESSION["name"] = "Имя";
$_SESSION["message"] = "Мессага";
}
?>
<blockquote>
<form action="http://basketchance.kulichki.ru/comments.php" method=post name=comments>
<input type=hidden name=file_name value="<?echo $path;?>">
<table width=673 cellpadding=0 cellspacing=1>
<tr>
<td></td>
<td align=left><font color=red size=-2><?echo $error_name;?></font></td>
</tr>
<tr>
<td rowspan=3 width="25%" align=right>
<b><span class=gray>Добавь своё мнение<br>об этой проге:</span></b>
</td>
<td width="75%" colspan=2><input type=text name="name" value="<?echo $_SESSION['name'];?>" size=30 onblur="if(this.value=='')this.value='Имя';" onfocus="if(this.value=='Имя')this.value='';">
</td>
</tr>
<tr>
<td colspan=2 align=left><font color=red size=-2><?echo $_SESSION["error_message"];?></font></td>
</tr>
<tr>
<td colspan=2><textarea name=message rows=7 wrap=virtual style="font-family: Verdana; font-size: 8pt; width: 100%;" onblur="if(this.value=='')this.value='Мессага';" onfocus="if(this.value=='Мессага')this.value='';"><?echo $_SESSION["message"];?></textarea>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<table align=center>
<tr>
<td class=pimpa onMouseOver="over(this)" onMouseOut="out(this)" onClick="comments.submit();">Отправить</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<table width=673>
<tr>
<td colspan=2 class=line><br></td>
</tr>
<?
if (file($txt)) {
$com = file($txt);
for($i = count($com) - 1; $i>=0; $i--) {
list($name, $message, $timeadd) = split("\t", $com[$i]);
echo "
<tr>
<td class=t_e width=84%><b>$name</b></td>
<td class=t_e width=16% align=center>$timeadd</td>
</tr>
<tr>
<td colspan=2>$message</td>
</tr>
<tr>
<td colspan=2 class=line><br></td>
</tr>
";
}
}
else
echo "
<tr>
<td colspan=2 align=center>Посетители молчат, как партизаны :(</td>
</tr>
<tr>
<td colspan=2 class=line><br></td>
</tr>";
?>
</table>
</blockquote>
<?
}
else {
if ($name == "Имя") {
$_SESSION["error_name"] = "укажи своё имя";
}
if ($message == "Мессага") {
$_SESSION["error_message"] = "мессагу то какую будешь отправлять?";
}
if ($error_name || $error_message) {
$_SESSION["name"] = $_POST["name"];
$_SESSION["message"] = $_POST["message"];
}
else {
$file = fopen($_POST['file_name']."txt", "a");
$_POST["name"] = str_replace("\r", "", $_POST["name"]);
$_POST["name"] = str_replace("\t", "", $_POST["name"]);
$_POST["name"] = str_replace("\n", "<br>", $_POST["name"]);
$_POST["message"] = str_replace("\r", "", $_POST["message"]);
$_POST["message"] = str_replace("\t", "", $_POST["message"]);
$_POST["message"] = str_replace("\n", "<br>", $_POST["message"]);
$out = $_POST["name"]."\t".$_POST["message"]."\t".date("d.m.Y H:i")."\n";
fwrite($file, $out);
fclose($file);
//Отправка на мыло админу
$text =
$_POST['name']."\n".
$_POST['message'];
mail("DeMximus@gmail.com", "BasketChance.kulichki.ru :: Message from visitor :: ".$_POST['file_name']."php", $text);
}
header("Location: ".$_POST['file_name']."php");
}
?>
Т.е. вся проверка осуществляется с помощью сессий, но почему-то они (сессии), как будто, уничтожаются после подключения comments.php...
Почему и как решить?