【发布时间】:2013-01-05 00:08:32
【问题描述】:
第一个例子
<?php
session_start();
if(!isset($_SESSION['count'])) $_SESSION['count'] = 0;
else ++$_SESSION['count'];
echo $_SESSION['count'] . "<br />";
?>
第二个例子
<?php
session_start();
if(!isset($_SESSION['initiated']))
{
session_regenerate_id();
$_SESSION['initiated'] = 1;
}
if(!isset($_SESSION['count'])) $_SESSION['count'] = 0;
else ++$_SESSION['count'];
echo $_SESSION['count'] . "<br />";
我发现唯一不同的是,如果我使用两个不同的 URL(例如:http//localhost/test?PHPSESSID=123;http//localhost/test?PHPSESSID=456),第一个脚本将从零开始重新计数,但第二个会继续计数
那么两个例子是什么意思?它想告诉我什么?
【问题讨论】:
-
这些脚本之间的唯一区别是
session_regenerate_id()块。您是在问为什么这会改变脚本的行为? -
是的,我不明白这些脚本的结果,当我添加 session_regenerate_id() 时,$_SESSION['count'] 仍在计数中
标签: php session-fixation