Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Обработка ссылок на несуществующие топики

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

shishkov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В topic.cgi
есть код который обрабатывает ситуацию: темы нет и файла .thd соответственно тоже.  
 
Этот фрагмент:

Код:
 
    $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
    $filetoopen = &stripMETA($filetoopen);
        if (-e $filetoopen) {
        open(FILE, $filetoopen) or &error("$ibtxt{'3005'}&$ibtxt{'3006'}");
        @threads = <FILE>;
        close(FILE);
        }
 

Если топика не существует то $filetoopen не существует и соответственно  
код  &error("$ibtxt{'3005'}&$ibtxt{'3006'}") не будет выполняться.
Вместо этого предупреждения о несуществующей теме выводится форма постить в непонятную тему... короче бред.
предлагаю заменить на:

Код:
     
    $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
    $filetoopen = &stripMETA($filetoopen);
        if (-e $filetoopen) {
        open(FILE, $filetoopen) or &error("Не могу открыть существующий файл темы");
        @threads = <FILE>;
        close(FILE);
        }else {
          &error("$ibtxt{'3005'}&$ibtxt{'3006'}");

         };
 

Всего записей: 44 | Зарегистр. 15-06-2002 | Отправлено: 21:28 12-07-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shishkov
 
не понимаю.
 
Смотри:
 
$ibtxt{'3005'} = "Открытие темы";
$ibtxt{'3006'} = "Эта тема не существует";
 
То есть так и будет:
 
 if (-e $filetoopen) {  
        open(FILE, $filetoopen) or &error("$ibtxt{'3005'}&$ibtxt{'3006'}");  
 
 
или:
 
 if (-e $filetoopen) {  
        open(FILE, $filetoopen) or &error("Открытие темы&Эта тема не существует");  
 
 
 
Смысле немного не вижу в твоем предложении...

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 05:42 13-07-2004
Sebastyan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Без этого блока

Цитата:
else {  
          &error("$ibtxt{'3005'}&$ibtxt{'3006'}");  
         };

при вводе, например, вручную вызова несуществующего топика вываливается страница топика без контента + нарушаются цвета ячеек таблицы
 
 
И та же байда вылазит, если ввести в ссылке ...forum=1&topic=68&start=Число>=ЧислуСообщенийТемы,
Причём это происходило и без искусственного ввода завышенного числа (иногда, что тоже неприятно).
Подправил тут (topic.cgi):
Найти:
   
Код:
if ($numberofitems > $maxthreads) {
        $showmore = "yes";
        if ((!$instart) or ($instart < 0)) { $instart = 0; }
        if ($instart > 0) { $startarray = $instart; } else { $startarray = 0; }

 
Заменить на:
 
   
Код:
if ($numberofitems > $maxthreads) {
        $showmore = "yes";
        if ((!$instart) or ($instart < 0) or ($instart >= $numberofitems)) { $instart = 0; }
        if ($instart > 0) { $startarray = $instart; } else { $startarray = 0; }

 
Теперь в подобных ситуациях идёт переход на первую страницу темы.

Всего записей: 34 | Зарегистр. 06-11-2003 | Отправлено: 13:53 13-07-2004
shishkov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx:
Цитата:
 То есть так и будет:  

К сожалению нет.

Код:
-e $filetoopen
 это проверка файла на существование, соответственно если файл не существует то блок
Код:
open(FILE, $filetoopen) or &error("$ibtxt{'3005'}&$ibtxt{'3006'}");
никогда не выполняется, весь if-блок просто обходится.  
Ошибка точно описана Sebastyan, кстати, спасибо за добавление.

Всего записей: 44 | Зарегистр. 15-06-2002 | Отправлено: 16:02 13-07-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shishkov
Sebastyan
 
Большое спасибо. В текущем дистрибутиве исправлено, доступно по адресу:
 
Обзор форума IkonBoard V. 2 (карта форума)  » Файловый архив II  »  
IB219rus_fixed3.zip

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 02:36 15-07-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Обработка ссылок на несуществующие топики


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru