我正在努力完全理解会话,并且我进行了这个测试:
我的代码是:
test.php的
<?
@session_start();
if(isset($_SESSION['test'])) {
echo "test success";
}
?>
当我使用插件手动将我的cookie输入浏览器时:
PHPSESSID test
它无法识别它。
答案 0 :(得分:1)
$ _ SESSION是一个&#34;超全球&#34; (可随处使用)使用唯一会话ID与cookie绑定的数组。
如果您想要引用Cookie值,那么您需要使用$ _COOKIE超全局数组。
您可以在此处详细了解超级全球:http://php.net/manual/en/language.variables.superglobals.php
$ _SESSION和$ _COOKIE如何在这里工作: http://php.net/manual/en/reserved.variables.cookies.php http://php.net/manual/en/reserved.variables.session.php
您无法使用此类浏览器在SESSION中设置值。 PHP是您唯一能够设置“测试”的地方。值的关键,如真或假。
session_start();
// You could assign this based on the value of a cookie
$_SESSION['test'] = true;
if ($_SESSION['test']) {
// this is a test session
}
希望有所帮助。
答案 1 :(得分:1)
要查看更改Cookie的结果,请执行以下操作:
<?
@session_start();
if(session_id() == 'test') {
echo "test success";
}
cookie包含会话ID,各个会话变量存储在服务器上,使用此ID和变量名作为键(默认配置使用以会话ID命名的文件)。