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

Не обновляется страница


lossen

Вопрос

Вообщем проблема такая. Когда отправляю пост, то страница не обновляется, а ждёт какого-то действия. Хотя сообщение фиксируется в топике.

Установлены следующие хаки:

1) Слейка постов

2) Все сообщения темы

3) Глобальные объявления

Но, скорее всего, из-за того, что я перебивал движок (удалял из showforum, showtopic и showuser; и оставил forum, topic, user). Вроде чё-то покрутил в папке lib, но не помню в каком файле.

Вроде как тут нечего решать, всё просто, но не обновляется.

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

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

  • 0

lossen

Вообщем проблема такая. Когда отправляю пост, то страница не обновляется, а ждёт какого-то действия. Хотя сообщение фиксируется в топике.

попробуй сменить тип редиректа в админке.

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

  • 0

Dekker, ты абсолютно прав!

 

У меня такая же трабла была, но я думал, что это из-за браузера или быстрого ответа, но теперь поменял на Refresh в типе редиректа и... летает!

 

:D

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

  • 0
Зато щёлкает и визуально переключается.

И как же от этого избавиться? :D

Имею в виду, как заставить и оперу корректно редиректиться нормальным способом?

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

  • 0
как заставить и оперу корректно редиректиться нормальным способом?

я нашёл решение только одно: в тех редиректах где опера "испытывает трудности" насильно ставлю html редирект. Т.е. я ввёл в функцию редиректа третий параметр, по умолчанию равный пустому месту. А когда он указан, то ридирект назначается тот что я в нём указываю.

А потом в нужных критических местах ставлю этим параметром "html".

В итоге получаем, что везде Опера работает по редиректу location, а там где не работает - по html. В частности при склейке.

ИМХО лучший вариант.

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

  • 0

Song

Честное слово, перечитал несколько раз, но...

Можно чуть подробней, с техническими деталями?

:D

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

  • 0

я бы привёл пример, но у меня функция редиректа вся покацонная. Вот как она у меня выглядит:

У вас наверняка не такая, поэтому я и опустил в сообщение выше "технические детали".

    function redirect_screen($text="", $url="", $type="") 
     {
global $std, $ibforums;

        if ($ibforums->input['debug']) 
 {
    flush();
    exit();
 }

$url = $start."?s={$ibforums->session_id}&".$url;

$std->boink_it($url,$type);

exit;
     }

function boink_it($url, $type = "" ) {
 global $ibforums;

 // Ensure &s are taken care of
 if (!$type) $type = $ibforums->vars['header_redirect'];

 $url = str_replace( "&", "&", $url );

 if ( $type == 'refresh')
 {
	 @header("Refresh: 0;url=".$url);
 }
 else if ($type == 'html')
 {
	 @flush();
// 	 echo("<html><head><meta http-equiv='refresh' content='0; url=$url'></head><body></body></html>");
	 echo("<html><head><meta http-equiv='refresh' content='0; url=".htmlspecialchars($url)."'></head><body></body></html>");
	 exit();
 }
 else
 {
	 @header("Location: ".$url);
 }
 exit();
}

 

В функции redirect_screen я добавил третий параметр $type.

По умолчанию он пустой и соответствено редирект используется тот, что стоит в админке, у меня location.

Но в нужных местах при вызове редиректа я добавляю третий параметр:

$print->redirect_screen('............', '.........', 'html') - и редирект происходит насильно по типу html.

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

  • 0

Я незнаю что это было, но сейчас всё ок. :D Я щас тестирую форум в IE 6 SP1, а раньше в Опере. Думаю это трабла с Оперой.

А какой типа редиректа ставить?

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

  • 0

lossen

ты читаешь топик или только о своём думаешь?

да, это трабл с оперой. Этого никто и не оспаривает. Просто предлагают как подкорректировать форум, раз нет возможности подкорректировать оперу.

Добавлено в [mergetime]1091435389[/mergetime]

Dekker

как-то пофиксили аднака ... может поделяться

именно так и пофиксили. Поставили html, но недостатки этого способа я указал.

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

  • 0

Блин

от я село

а в каком файле это изменяется?! а то нигде не написано тут! :D

 

я нашёл решение только одно: в тех редиректах где опера "испытывает трудности" насильно ставлю html редирект. Т.е. я ввёл в функцию редиректа третий параметр, по умолчанию равный пустому месту. А когда он указан, то ридирект назначается тот что я в нём указываю.

А потом в нужных критических местах ставлю этим параметром "html".

В итоге получаем, что везде Опера работает по редиректу location, а там где не работает - по html. В частности при склейке.

ИМХО лучший вариант.

??? мож вопроси и не правельный...

но откуда форум будет знать, где редиректить стандартно, а где по хтмл?! я так и не понял что то!?

 

и еще одно: как безвредно добавить твой прикол к себе в форум? куда что прописать!? я же не могу скоприровать тот код, что выше и вставить себе, работать наверное не будет!

Пасиб

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

  • 0
??? мож вопроси и не правельный...

но откуда форум будет знать, где редиректить стандартно, а где по хтмл?! я так и не понял что то!?

Т.е. я ввёл в функцию редиректа третий параметр, по умолчанию равный пустому месту. А когда он указан, то ридирект назначается тот что я в нём указываю.

А потом в нужных критических местах ставлю этим параметром "html".

И чего ж здесь непонятного?

и еще одно: как безвредно добавить твой прикол к себе в форум? куда что прописать!? я же не могу скоприровать тот код, что выше и вставить себе, работать наверное не будет!

нет скопировать не надо. Надо изменить свой по аналогии.

Ты в php вообще не рубишь что ли?

Добавлено в [mergetime]1102056058[/mergetime]

Файл functions.php

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

  • 0

;)

В пхп вообще не рулблю...

ну тока знаю примерно что где и как...

 

Не мог бы ты мне помочь

вот моя функция редиректа в functions.php

    function redirect_screen($text="", $url="", $override=0)
    {
            global $ibforums, $skin_universal, $DB;

            if ($ibforums->input['debug'])
        {
                flush();
                exit();
        }

        if ( $override != 1 )
        {
                        if ( $ibforums->base_url )
                        {
                                $url = $ibforums->base_url.$url;
                        }
                        else
                        {
                                $url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?".$url;
                        }
            }

            $ibforums->lang['stand_by'] = stripslashes($ibforums->lang['stand_by']);

            //---------------------------------------------------------
        // CSS
        //---------------------------------------------------------

 

Можешь изменить мне это как надо!? ну как у тебя сделано!?

Спасибо большое!!!

ЗЫ: так я до сих пор не понял, где оно будет редиректить по локейшн, а где по хтмл!? как оно будет знать например что тут нада ХТМЛ!? :)

впринципе это не важно :) главное что бы работало, мне просто интересно!

Спасибо! :D

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

  • 0

dfc_darkman

тогда давай сюда полностью две функции: redirect_screen() и boink_it()

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

  • 0

Song

Ну насколько я понял, полностью вот:

 

redirect_screen()

 

    function redirect_screen($text="", $url="", $override=0)
    {
            global $ibforums, $skin_universal, $DB;

            if ($ibforums->input['debug'])
        {
                flush();
                exit();
        }

        if ( $override != 1 )
        {
                        if ( $ibforums->base_url )
                        {
                                $url = $ibforums->base_url.$url;
                        }
                        else
                        {
                                $url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?".$url;
                        }
            }

            $ibforums->lang['stand_by'] = stripslashes($ibforums->lang['stand_by']);

 

Дальше там идёт CSS, он же не нужен?

 

boink_it()

 

        function boink_it($url)
        {
                global $ibforums;

                // Ensure &s are taken care of

                $url = str_replace( "&", "&", $url );

                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();
        }

 

 

СПАСИБО ОГРОМНОЕ ЗА ХЕЛП! :D

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

  • 0
Дальше там идёт CSS, он же не нужен?

я сказал что мне нужно всю функцию.

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

  • 0

:D

;)

я не знаю где ВСЯ фунция! :)

Вот если что мой functions.php или нужны еще файлы?

functions.zip

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

  • 0

dfc_darkman

Так определяется функция:

function any_function(parameters) { <- НАЧАЛО

...

 

if ( условие )

{

....

 

}

 

} <- КОНЕЦ

 

Т.е. функция определяется скобками. Скобки внутри функции, если есть, относятся к другим структурам и не заканчивают функцию. Комментарий типа // CSS вообще к функции никакого отношения не имеет с точки зрения кода и не заканчивает функцию как ты подумал выше.

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

  • 0

Так! ;) Вроде разобрался

спасибо за разьяснения...

Вот мой редирект:

    function redirect_screen($text="", $url="", $override=0)
    {
            global $ibforums, $skin_universal, $DB;

            if ($ibforums->input['debug'])
        {
                flush();
                exit();
        }

        if ( $override != 1 )
        {
                        if ( $ibforums->base_url )
                        {
                                $url = $ibforums->base_url.$url;
                        }
                        else
                        {
                                $url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?".$url;
                        }
            }

            $ibforums->lang['stand_by'] = stripslashes($ibforums->lang['stand_by']);

            //---------------------------------------------------------
        // CSS
        //---------------------------------------------------------

        if ( $ibforums->skin['css_method'] == 'external' )
        {
                $css = $skin_universal->css_external($ibforums->skin['css_id'], $ibforums->skin['img_dir']);
        }
        else
        {
                $css = $skin_universal->css_inline( str_replace( "<#IMG_DIR#>", $ibforums->skin['img_dir'], $ibforums->skin['css_text'] ) );
        }

            $htm = $skin_universal->Redirect($text, $url, $css);

            $TAGS = $DB->query("SELECT macro_value, macro_replace FROM ibf_macro WHERE macro_set='{$ibforums->skin['macro_id']}'");

            while ( $row = $DB->fetch_row($TAGS) )
              {
                        if ($row['macro_value'] != "")
                        {
                                $htm = str_replace( "<{".$row['macro_value']."}>", $row['macro_replace'], $htm );
                        }
                }

                $htm = str_replace( "<#IMG_DIR#>", $ibforums->skin['img_dir'], $htm );

            // Close this DB connection

                $DB->close_db();

                // Start GZIP compression

        if ($ibforums->vars['disable_gzip'] != 1)
        {
                $buffer = ob_get_contents();
                ob_end_clean();
                ob_start('ob_gzhandler');
                print $buffer;
        }

        $this->do_headers();

            echo ($htm);
            exit;
    }

 

Вот мой boink_it(), оказывается я её правильно и в первый раз дал! :D

 

        function boink_it($url)
        {
                global $ibforums;

                // Ensure &s are taken care of

                $url = str_replace( "&", "&", $url );

                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();
        }

 

Вроде так! :)))

Спасибо!

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

  • 0

dfc_darkman

redirect_screen редиректит по

<meta http-equiv='refresh' content='2; url=$Url' />

Я так понял что redirect_screen вообще игнорирует настройки редиректа в админке. Или не так?

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

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

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

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

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

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

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

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

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

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

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

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