0

第一个例子

<?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),第一个脚本将从零开始计数,但是第二个将继续计数

那么两个例子是什么意思呢?它想告诉我什么?

4

2 回答 2

0

对不起,我的第一个回答太仓促了。看看这个。PHP.net 说:

“session_regenerate_id() 会将当前会话 id 替换为新的,并保留当前会话信息。”

于 2013-01-05T00:16:11.843 回答
0

session_regenerate_id() 如果可以,将提交一个 cookie 以保留会话详细信息。将其视为用户的扩展会话。因此,如果用户关闭他们的浏览器,则可以调用用户会话。

于 2013-01-08T14:02:43.313 回答