在 Javascript 中访问 PHP 会话名称
Access the PHP session name in Javascript
我目前正在使用它来检查浏览器中是否存在 cookie 名称:
document.cookie.indexOf('myCookie=')
如果 cookie 是通过 PHP 的 setcookie()
设置的,则此方法有效,但这似乎不适用于 PHP 会话。
例如如果 "cookie" 是通过 session_start();
设置的,您可以在浏览器检查器中看到过期时间为 "Session" 的 cookie 名称。我似乎无法通过 JS 访问该会话 cookie 名称。有什么想法吗?
明确一点:我需要检查浏览器中是否存在 PHP 会话 cookie 名称,而不是会话数据。
如果启用了 session.cookie_httponly
PHP 配置设置,则可以将 PHP 会话 cookie 设置为仅通过 HTTP(即不在 JS 中)可用。换句话说,您需要禁用它/将其设置为 false
才能在 JS 中访问您的会话 cookie。
您可以像这样检查它的值:
<?php
var_dump(ini_get('session.cookie_httponly'));
通常,security reasons 启用此设置,所以我强烈建议质疑这样做的必要性。
我目前正在使用它来检查浏览器中是否存在 cookie 名称:
document.cookie.indexOf('myCookie=')
如果 cookie 是通过 PHP 的 setcookie()
设置的,则此方法有效,但这似乎不适用于 PHP 会话。
例如如果 "cookie" 是通过 session_start();
设置的,您可以在浏览器检查器中看到过期时间为 "Session" 的 cookie 名称。我似乎无法通过 JS 访问该会话 cookie 名称。有什么想法吗?
明确一点:我需要检查浏览器中是否存在 PHP 会话 cookie 名称,而不是会话数据。
如果启用了 session.cookie_httponly
PHP 配置设置,则可以将 PHP 会话 cookie 设置为仅通过 HTTP(即不在 JS 中)可用。换句话说,您需要禁用它/将其设置为 false
才能在 JS 中访问您的会话 cookie。
您可以像这样检查它的值:
<?php
var_dump(ini_get('session.cookie_httponly'));
通常,security reasons 启用此设置,所以我强烈建议质疑这样做的必要性。