这些关于会话固定的例子是什么意思

时间:2013-01-05 00:08:32

标签: php session-fixation

第一个例子

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

那么两个例子意味着什么呢?它想告诉我什么?

2 个答案:

答案 0 :(得分:0)

抱歉,我的第一个答案太仓促了。检查This。 PHP.net说:

“session_regenerate_id()将使用新会话ID替换当前会话ID,并保留当前会话信息。”

答案 1 :(得分:0)

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