Вопрос по сессиям

Focus

Новичок
Вопрос по сессиям

Сделал авторизацию на сайте с помощью сессий. Как сделать чтобы не терялась сессия при переходе на поддомен, а то сессия есть только на site.com, а на www.site.com, board.site.com - ее нет
 

Focus

Новичок
Перед session_start использую:
session_set_cookie_params(1800, "/");
Прикол в том что работает в ИЕ, а в мозилле сессия теряется..
 

DiMA

php.spb.ru
Команда форума
В каком конкретно месте теряется?
[telepat mode=on] при переходе между доменами типа хост.ру и ввв.хост.ру? Дуй читайть ман.
 

Focus

Новичок
а ссылку можете дать где это описывается?
И почему в одном браузере работает а в другом нет..
 

Focus

Новичок
Что-то не получается разобраться..

Есть основной домен site.ru
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

в htaccess прописал
php_value session.cookie_domain ".site.ru"
По идее этой строчкой должна сохраняться сессия для всех поддоменов..

Теперь перехожу после авторизации на поддомен board.site.ru
В ИЕ сессия не теряется - echo $_SESSION['uslogin']; - выводит непустое значение
в мозилле же это значение пустое.
Почему так происходит?

Как устранить ошибки?
 

findnext

Новичок
И почему в одном браузере работает а в другом нет..
потому что ты неправильно что то делаешь, покажи то место, где происходит авторизация и выставляются куки

-~{}~ 05.05.09 13:48:

я знаю в чём проблема, но просто ты должен сам допереть чтобы вопрос не задавать в след раз
 

Focus

Новичок
PHP:
function login_saver() {
if ($this->save_login == "no") {
	if (isset($_COOKIE[$this->cookie_name])) {
		$expire = time()-3600;
	} else {
		return;
	}
} else {
		$expire = time()+1209600;
	}
$cookie_str = $this->login.chr(31).base64_encode($this->pass);
setcookie($this->cookie_name, $cookie_str, $expire, '/', '.site.ru');		
	}

#######Сама авторизация
$this->login = $login;
$this->pass = md5($pass);
if ($this->check_user())   //Проверяем есть ли такой юзер в базе
{	
	$this->login_saver();
	$this->reg_visit($this->type_user, $this->login, $this->pass);   //Отмечаем последний вход
	$_SESSION['uslogin']=$this->login;
	$_SESSION['uspass']=$this->pass;
	$_SESSION['type_user']=$this->type_user;
	return true;
}
Вот кусок кода отвечющего за авторизацию
Ну вроде бы все сделал уже, но почему-то все-равно теряется сессия
 

findnext

Новичок
Focus
setcookie("user", $userid, $expire, "/", DOMAINNAME, false, true);

последние 2 параметра для FF должны быть заполнены обязательно.
В мануале есть одно место в комментариях где говорится об этом.

-~{}~ 05.05.09 14:03:

http://ee.php.net/setcookie
 

Focus

Новичок
добавил 2 параметра для как Вы написали :
setcookie($this->cookie_name, $cookie_str, $expire, '/', '.site.ru', false, true);

Та же проблема - в ИЕ работает, в мозилле сессия теряется..

-~{}~ 05.05.09 14:18:

Отставить. Все норм заработало. ЗАбыл просто почистить темпфайлы.
findnext огромное спасибо!!!
 
Сверху