我有一个网站,每个用户会话需要执行一次特定的后端功能。因此,我希望能够确定任何给定的页面视图是否是给定会话中的第一个。
根据PHP文档:
session_start()会根据此会话创建会话或恢复当前会话 通过GET或POST请求传递的会话标识符,或通过 cookie中。
那么有没有办法知道会话是在创建还是恢复?
或者这是我必须根据我在服务器上维护的列表检查当前会话ID的情况,以检查它是否已经注册过?如果是这样,这是否需要写入数据库,或者是否有一种不那么麻烦的内存方式呢?
答案 0 :(得分:8)
<?php
session_start();
if(empty($_SESSION['exists'])){
//handle completely new session here
}
$_SESSION['exists'] = true;
.... //continue on with normal request
答案 1 :(得分:4)
过去所有记录的检查会话“新奇”的方法都让我失望,所以我倾向于
$_SESSION['existing']=true;
开始会话,然后只是测试
if (isset($_SESSION['existing'])) ...
答案 2 :(得分:2)
检查是否定义了$_COOKIE['PHPSESSID']
(或者如果您将其更改为默认值,则为cookie名称。
如果cookie不存在,则刚刚创建了会话。