PDA

Просмотр полной версии : Самопальная авториция в Ipb 2.3.4 и глюки


blaga
21.07.2008, 10:36
Доброго времени суток.
Мне тут нужно было одну фичу замутить как дополнение к форуму IPB 2,3,4 и я оттуда выдирал авторизацию... ну что бы совместить мой проект и форум, и что бы сессия норм. подхватывалась.
Ну вроде как сделал все, тока вот косяк в том что теперь когда под оперой сижу захожу например по ссылке index.php? и меня кидает почему то в профиль. А иногда по ссылке index.php?act=idx а по index.php? все нормально. Короче переадресация какаято странная прыгает по этим ссылкам. И еще иногда когда я по ним хожу у меня почему то теряется сессия и я оказываюсь гостем...
Вот код который у меня работает на стороне как аторизация.

<?php
Error_Reporting(E_ALL^E_NOTICE);


require_once( '../init.php' );

require_once ROOT_PATH . "conf_global.php";

require_once ROOT_PATH . "sources/ipsclass.php";
require_once ROOT_PATH . "sources/classes/class_display.php";
require_once ROOT_PATH . "sources/classes/class_session.php";
require_once KERNEL_PATH . "class_converge.php";


$ipsclass = new ipsclass();
$ipsclass->vars = $INFO;

$ipsclass->init_db_connection();

$ipsclass->print = new display();
$ipsclass->print->ipsclass =& $ipsclass;

$ipsclass->sess = new session();
$ipsclass->sess->ipsclass =& $ipsclass;

$ipsclass->converge = new class_converge( $ipsclass->DB );

//--------------------------------
// Initialize the FUNC
//--------------------------------

$ipsclass->initiate_ipsclass();

//--------------------------------
// The rest :D
//--------------------------------

$ipsclass->member = $ipsclass->sess->authorise();
$ipsclass->lastclick = $ipsclass->sess->last_click;
$ipsclass->location = $ipsclass->sess->location;
$ipsclass->session_id = $ipsclass->sess->session_id; // Used in URLs
$ipsclass->my_session = $ipsclass->sess->session_id; // Used in code


require_once( ROOT_PATH.'sources/action_public/login.php' );

print_r ($ipsclass->member);

if($ipsclass->member['name'] == "Guest" or $ipsclass->member['id'] == "0" or $ipsclass->member['email'] == "")
{
echo "<br /><h2>Вы гость!</h2>";
}
else
{
echo "<br /><h2>Здравствуйте, ".$ipsclass->member['name']."!</h2>";
}

?>


У кого какие мысли по сабжу?

Helios
21.07.2008, 14:29
По поводу перенаправлений странных - проверь наличие хидеров Location в либах авторизации, возможно там какая-то косая логика. Также посмотри как двиг получает параметр act, там может быть указание дефолтного значения. Где-то скопипастил - лови баг.

По поводу потери сессий - полазь по сайту, постоянно проверяя какие кукисы он тебе выдает. Дело в том, что у браузеров есть квота на количество кукисов с одного сайта. Когда она превышена, новый кукис пишется вместо самомго старого. Возможно у тебя таким образом затирается PHPSESSID

blaga
21.07.2008, 15:21
Helios, форум свежий тока установленный никаких фиговин не доставлял все по дефолту....
Но вообще спасибо за попытку. Погляжу по направлениям...