В очередной раз попробовал зайти в админку форума - после ввода логина/пароля и нажатия кнопки "Ввод" сервер зависает (через 3 минуты - получаю ошибку таймаута). В логах сервера никаких ошибок нет, кроме 3-минутного таймаута.
Если под этим же логином/паролем (а также под любыми другими) зайти на форум, никаких проблем не возникает. Кукисы чистил. Проблема наблюдается в разных браузерах.
В результате локализации проблемного кода было определено, что в файле admin/sources/classes/output/formats/html/htmlOutput.php зависает команда [ @header( "Location: ".$url ); ] в [htmlOutput::silentRedirect()] (строка 555, в приведённом коде - внизу):
/**
* Silent redirect (Redirects without a screen or other notification)
*
* @access public
* @param string URL
* @param string [sEO Title]
* @param string [send a 301 redirect header first]
* @param string SEO Template
* @return mixed
*/
public function silentRedirect( $url, $seoTitle='', $send301=FALSE, $seoTemplate='' )
{
...
if ( $this->settings['header_redirect'] == 'refresh' )
{
@header("Refresh: 0;url=".$url);
}
else if ( $this->settings['header_redirect'] == 'html' )
{
$url = str_replace( '&', '&', str_replace( '&', '&', $url ) );
echo("<html><head><meta http-equiv='refresh' content='0; url=$url'></head><body></body></html>");
exit();
}
else
{
@header( "Location: ".$url );
}
exit();
}
Если убрать собаку, по-прежнему никаких ошибок в логах не появляется (кроме 3-минутного таймаута). Т.е. происходит именно зависание на этой команде. Непосредственно перед этим header Функция headers_sent() возвращает false
В очередной раз попробовал зайти в админку форума - после ввода логина/пароля и нажатия кнопки "Ввод" сервер зависает (через 3 минуты - получаю ошибку таймаута). В логах сервера никаких ошибок нет, кроме 3-минутного таймаута.
Если под этим же логином/паролем (а также под любыми другими) зайти на форум, никаких проблем не возникает. Кукисы чистил. Проблема наблюдается в разных браузерах.
В результате локализации проблемного кода было определено, что в файле admin/sources/classes/output/formats/html/htmlOutput.php зависает команда [ @header( "Location: ".$url ); ] в [htmlOutput::silentRedirect()] (строка 555, в приведённом коде - внизу):
/** * Silent redirect (Redirects without a screen or other notification) * * @access public * @param string URL * @param string [sEO Title] * @param string [send a 301 redirect header first] * @param string SEO Template * @return mixed */ public function silentRedirect( $url, $seoTitle='', $send301=FALSE, $seoTemplate='' ) { ... if ( $this->settings['header_redirect'] == 'refresh' ) { @header("Refresh: 0;url=".$url); } else if ( $this->settings['header_redirect'] == 'html' ) { $url = str_replace( '&', '&', str_replace( '&', '&', $url ) ); echo("<html><head><meta http-equiv='refresh' content='0; url=$url'></head><body></body></html>"); exit(); } else { @header( "Location: ".$url ); } exit(); }Если убрать собаку, по-прежнему никаких ошибок в логах не появляется (кроме 3-минутного таймаута). Т.е. происходит именно зависание на этой команде. Непосредственно перед этим header Функция headers_sent() возвращает false
URL передаётся такой:
Если этот URL ввести в браузере непосредственно, то нормально загружается страница ввода логина/пароля.
В чём может быть проблема ?