Перейти к контенту
  • 0

Пропал переход при создании нового поста


Вопрос

После установки ряда модов пропала «перемотка» страницы в новому посту после её загрузки. Последние установленные моды:

 

Убрал из подписи тэги IMG, CODE и QUOTE

Установил мод обрезания хвоста длинных смайлов

Установил мод нумерации постов в теме (Page_Number.zip)

Установил хак наград (Awards.zip)

 

У кого-нибудь есть соображения по этому поводу?

 

Добавлено: Похоже, глюк только в IE. Совсем ничего не понимаю...

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Dr.Freddy, дай тестовый логин/пароль на форум + указание, примерно в каких темах это происходит. Возможно, потребуются Post.php и Topics.php.

PS URL форума тоже указывай на всякий случай. :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs, я тебе письмо отправил.

 

Так, «все страньше и страньше». Пытался локализировать проблему и заменил ВСЕ файлы форума (кроме conf_global.php) чистыми (из «дистрибутива» форума). Результата никакого — глюк с перемоткой по-прежнему есть.

 

Проблема что, в базе? Или в конфиге? Думал, IE глючит, залез через него на другой IPB форум — нет, все работает.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Нашёл первопричину. Глюк возникает, когда я разрешаю загружать файлы на форум... @_@

 

Эт-то ещё почему?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Влад, считай, что ты нашёл специфический глюк IE. :)

 

Методом тыка было установлено: IE обрезает все якоря в заголовке при посылке ему HTTP-заголовка Location после обработки формы, у которой свойство enctype установлено в multipart/form-data. (Всё просто... :D )

 

Когда загрузку файлов разрешаешь, то в соответствии с вот этой строчкой из файла sources/Post.php

$this->obj['form_extra']   = " enctype='multipart/form-data'";

форме задаётся свойство enctype. Для того, чтобы осуществить закачку файлов, оно должно равняться именно 'multipart/form-data', тут всё правильно.

 

Затем в файле sources/lib/post_reply_post.php, в функции add_reply выполняется обработка переданных данных, а после завершения обработки вызывается функция boink_it() (перенаправление на другую страницу без странички редиректа), вот так:

$std->boink_it($class->base_url."showtopic={$this->topic['tid']}&st=$pageentry{$this->post['pid']}");

 

Функция boink_it() у нас размещается в файле functions.php, вот она:

 function boink_it($url)
{
 global $ibforums;

 // Ensure &s are taken care of

 $url = str_replace( "&", "&", $url );
 
 // header("Location: http://localhost/131/index.php?showtopic=2&st=15entry31");
 
 if ($ibforums->vars['header_redirect'] == 'refresh')
 {
	 @header("Refresh: 0;url=".$url);
 }
 else if ($ibforums->vars['header_redirect'] == 'html')
 {
	 @flush();
	 echo("<html><head><meta http-equiv='refresh' content='0; url=$url'></head><body></body></html>");
	 exit();
 }
 else
 {
	 @header("Location: ".$url);
 }
 exit();
}

Функция включает несколько типов редиректа в зависимости от настройки $ibforums->vars['header_redirect'], установленной в ACP -> Системные настройки -> Главная конфигурация -> Тип авторедиректа?

Все редиректы, кроме Location в данной ситуации работают нормально. Под Мозиллой и Оперой вообще никаких проблем нет.

 

Как пофиксить:

1. Ну, логично, можно поменять тип редиректа, да и все дела.

2. А можно схитрить. Например, я в post_reply_post.php заменил

$std->boink_it($class->base_url."showtopic={$this->topic['tid']}&st=$pageentry{$this->post['pid']}");

на

$std->boink_it($class->base_url."showtopic={$this->topic['tid']}&view=getlastpost");

Действие полностью аналогично. ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Все работает. Игорь, спасибо тебе. :D

 

Касамое типа редиректа. Я так понял, никакой разницы по большому счёту нет? Набор из трёх типов был создан для совместимости вот в таких вот случаях?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Я так понял, никакой разницы по большому счёту нет?

Ты это у выпускника СМИ спрашиваешь? Сложный вопрос для меня. ;)

 

Набор из трёх типов был создан для совместимости вот в таких вот случаях?

Это да, для совместимости. :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Кстати в Опере проблема есть. Например, имеем мод Merge Posts (склейка сообщений). Постим ответ. Первое сообщение постится, потом постим второе, чтобы слклеилось, топик "подвисает". Т.е. сообщение отправляется, но редирект не срабатывает. Лечится установкой редиректа "html", но он гадкий.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.