imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 13.05.2005, 19:06     # 1
DeMx
Guest
 
Сообщения: n/a

Трабла в скрипте комментов

Есть собственно ручно написанный скрипт добавления и просмотра комментариев, на 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...
Почему и как решить?
 
Старый 14.05.2005, 09:50     # 2
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
ты бы локальный путь писал в require... ну и у формы action тоже

if (file($txt)) {
$com = file($txt);
...
лучше вот так if ($com = file($txt)) ...
а то два раза файлик читать... тяжело
__________________
Nunc est bibendum
is_absent вне форума  
Старый 14.05.2005, 12:14     # 3
DeMx
Guest
 
Сообщения: n/a

локальный? т.е. такой:
PHP код:
require "../../comments.php"
не работает
 
Старый 14.05.2005, 14:21     # 4
DeMx
Guest
 
Сообщения: n/a

сделал так:
PHP код:
$path "/texts/history/first_13_rules.";
$txt "first_13_rules.txt";
require 
"../../comments.php"
теперь только добавление не работает, а так всё отлично
 
Старый 16.05.2005, 05:54     # 5
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
ты пишешь $file = fopen($_POST['file_name']."txt", "a");
а перед этим
$path = "/texts/history/first_13_rules.";

путь от корня вычисляется... fopen($_SERVER['DOCUMENT_ROOT'].$_POST['file_name'].. или что-то в этом роде нужно..
__________________
Nunc est bibendum
is_absent вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:32.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.