Народ помогите с phpBB2

S

Spazm

В краце о проблеме:
Установил форум http://thehooligans.jino-net.ru/phpBB2/, все было прекрасно целые сутки, все работало.... Но наследующий день не могу войти в административный раздел и всё... Нажимаю ссылку "перейти в Административный раздел" и начинает грузится что-то (и так может час или два...) и в итоге ничего не открывается....
А так все работает, сообщения добавляются, аватар кажет, смайлы работают... Но тут я заметил еще одну особенность... когда жмешь вход как всегда открывается страница где нужно ввести логин и пароль и когда их вводишь то такая же хрень происходит как и с административным разделом.... Самое интересное то что когда переходишь на другую, причем любую страницу, то светится надпись что вход осуществлен
Помогите плиззз....
*************************************************
Что посоветуете? Форум менять чтоль? Если да, то на какой? Но конечно лучше былобы разобраться с этим....
 
Last edited by a moderator:

Vah

Member
Joined
May 8, 2005
Messages
142
Reaction score
5
Age
39
Location
Moscow
Был у мну такой баг........ Именно с phpBB2...... причину чесноговоря не нашел....... но заметил что в Linux все работает а в Windows - такой баг....... было где-то 1-2 года назад......... могу предположить что заглючивает JavaVM или может с кукисами что нить или кешем левак какой-то........
 
S

Spazm

Решил я эту проблему немного побродя по просторам рунета....
Информацию нашел на одном форуме поддержки hphBB2
Решил разместить, вдруг кому пригодится...
******************************************************
******************************************************
Шаг №1
******************************************************
Такой глюк замечен в версиях начиная с 2.0.16 и 2.0.17 ...
admin/pagestart.php
найти
Код:

if (!$userdata['session_admin'])
{
redirect(append_sid("login.$phpEx?redirect=admin/index.$phpEx&admin=1", true));
}



заменить на

Код:

if (!$userdata['session_admin'])
{
redirect(append_sid("../login.$phpEx?redirect=admin/index.$phpEx&admin=1", true));
}
***********************************************************
***********************************************************
Это шаг №2
***********************************************************
Проблема: При авторизации на форуме ошибка 404, хотя реально форум обрабатывает данные и при обновлении страницы пользователь нормально авторизован. Суть в механизме редиректа.



1. Открыть файл includes/functions.php

2. Найти


Код:
function redirect($url)
{
global $db, $board_config;

if (!empty($db))
{
$db->sql_close();
}

if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r"))
{
message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');
}

$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$url = preg_replace('#^\/?(.*?)\/?$#', '/\1', trim($url));

// Redirect via an HTML form for PITA webservers
if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
{
header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url);
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="0; url=' . $server_protocol . $server_name . $server_port . $script_name . $url . '"><title>Redirect</title></head><body><div align="center">If your browser does not support meta redirection please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
exit;
}

// Behave as per HTTP/1.1 spec for others
header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url);
exit;
}


3. Заменить на


Код:
function redirect($url)
{
global $db, $board_config;

if (!empty($db))
{
$db->sql_close();
}

$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
$server_name = preg_replace('#^/?(.*?)/?$#', '1', trim($board_config['server_name']));
$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
$script_name = preg_replace('#^/?(.*?)/?$#', '1', trim($board_config['script_path']));
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
//$url = preg_replace('#^/?(.*?)/?$#', '/1', trim($url));

// Redirect via an HTML form for PITA webservers
if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
{
header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url);
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="0; url=' . $server_protocol . $server_name . $server_port . $script_name . $url . '"><title>Redirect</title></head><body><div align="center">If your browser does not support meta redirection please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
exit;
}

// Behave as per HTTP/1.1 spec for others
//header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url);
header('Location: ' . $url);
exit;
}

4. сохранить файл includes/functions.php и скопировать обратно поверх существующего.
******************************************************
Пользуйтесь на здоровье
 
Top