Cookie с точкой и без

SiZE

Новичок
Cookie с точкой и без

имею самопальную функцию

PHP:
/**
 * Устанавливает cookie
 * 
 * @param string Имя
 * @param string Значение
 * @param integer Время истечения куки в днях
 * @return void
 */
function cookieSet ( $name, $value='', $expires_x_days=0 ) {
	
	// Устанвливаем переменные
	if ( $expires_x_days ) {
		$expires = time() + ( $expires_x_days * 86400 );
	} else {
		$expires = FALSE;
	}
	
	$config = Zend_Registry::get('cnf');
	
	// Эта строка была добавлена что бы убедится что точно нет никаких точек :)
	$host = preg_replace('#^\.#','',$_SERVER['HTTP_HOST']));
	
	setcookie( $config->cookie->prefix.$name, $value, $expires, $config->cookie->path, $host);
	//new Zend_Http_Cookie( $cookie_prefix.$name, $value, $cookie_domain, $expires, $cookie_path);
}
Ситуация такая, для site.ru и sub.site.ru как видно из кода домен устанавливается без точки в начале имени. А куки в браузере получаются с точкой .site.ru и .sub.site.ru Смотрел через фаербаг заголовки HTTP, имена доменов передаются без точек. Соответственно возникает баг, кукисы с одним и тем же именем и когда мы получаем их для sub.site.ru то они перекрываются с site.ru

Как это исправить?
 

lart

Guest
Установи параметр
ini_set('session.cookie_domain', $_SERVER['HTTP_HOST']);
 
Сверху