Перейти к контенту
  • 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 вообще игнорирует настройки редиректа в админке. Или не так?

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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