session_get_cookie_params()不起作用

时间:2015-01-14 11:00:43

标签: php cookies

我在应用程序中有一个代码段,其域名为 http://localhost/xyz/

我正在使用代码段创建Cookie

$cookie_name = "AMCV_98DC73AE52E13F1E0A490D4C@!#$%&~|AdobeOrg";
$cookie_value = "kuchbhi";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day

在此之后我尝试执行session_get_cookie_params()以使用以下代码段获取上面创建的Cookie的域详细信息

$cookieInfo = session_get_cookie_params();
echo $cookieInfo['domain'];

但是我仍然没有得到任何域名,即使在打印$ cookieInfo数组时,我也得到空数组。

请建议session_get_cookie_params()函数的确切功能..

2 个答案:

答案 0 :(得分:2)

函数session_get_cookie_params()基于一堆php.ini文件值:

session.cookie_lifetime
session.cookie_path
session.cookie_domain
session.cookie_secure
session.cookie_httponly

您可以在php.ini文件中设置值,也可以使用以下命令在脚本开头覆盖这些值:

ini_set('session.cookie_domain', 'www.example.com');

答案 1 :(得分:1)

顾名思义和the manual明确说明,此函数收集有关会话 Cookie的信息:

  

会话 _get_cookie_params - 获取会话 Cookie

     

获取会话cookie参数。   [...]   返回包含当前会话cookie信息的数组

在其他作品中,它是一个花哨的包装器,可以在一行中读取一些PHP设置,而不是发布five calls to ini_get()

我怀疑你混淆了cookie和会话,并且可能认为它们是同义词。它们不是:cookie是客户端存储,会话是服务器端存储。 PHP碰巧允许(并鼓励)使用cookie来传输会话ID,告诉服务器端存储你是谁,但就是这样。将会话cookie视为打开办公室的磁卡:这不会使您的万事达卡与门有任何关系。

如果您的问题是“我如何取回我的cookie参数”,答案就是您不能。打开浏览器的开发人员工具,您将看到浏览器从不发送该信息:

Firebug: Net pane