session_set_cookie_params似乎有效,但cookie不受影响

时间:2012-06-20 10:14:17

标签: php session-cookies

我正在使用HTTPS,我想为PHPSESSID和我创建的其他cookies设置安全属性。

session_set_cookie_params(0,'/','', isset($_SERVER["HTTPS"]));
session_start();
$data = session_get_cookie_params();
foreach ($data as $key=>$value) {
    echo $key.$value;
}

该功能似乎有效,实际上,打印出session_get_cookie_params()安全属性等于1 但是,当我通过FirefoxFirebug+Firecookie检查我的Cookie状态时,它们似乎根本没有受到声明的影响。即使更改域属性也会产生相同的结果。

我正在使用XAMPP,在Ubuntu和localhost上工作(localhost应该对安全问题进行特殊处理)。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

使用session name时尝试使用session_set_cookie_params

参考:
PHP session_set_cookie_params
PHP session_name

答案 1 :(得分:1)

我有同样的问题,使用session_name()没有帮助。我必须禁用生成cookie的session_start()并手动生成cookie:

$sessionID = $_COOKIE[session_name()];
ini_set('session.use_cookies', false);
if ($sessionID) session_id($sessionID); // reuse if available
session_start();
// session_set_cookie_params() is not working with a "path" part
// this way every click is extending the session for $timeout more
setcookie(session_name(), $sessionID ?: session_id(), time() + $timeout, $cookiePath, $_SERVER['HTTP_HOST'], false, true);

x-powered-by:PHP / 5.4.15