检查会话是否是PHP中的新内容

Yar*_*rin 2 php session http sessionid session-cookies

我有一个网站需要每个用户会话执行一次特定的后端功能.因此,我希望能够确定给定页面视图是否是给定会话中的第一个.

根据PHP文档:

session_start()根据通过GET或POST请求传递的会话标识符创建会话或恢复当前会话,或通过cookie传递.

那么有什么方法可以知道会话是在创建还是恢复?

或者这是我必须根据我在服务器上维护的列表检查当前会话ID的情况,以检查它是否已经注册过?如果是这样,这是否需要写入数据库,或者是否有一种不那么麻烦的内存方式呢?

Ken*_*iah 8

<?php
session_start();
if(empty($_SESSION['exists'])){
    //handle completely new session here
}
$_SESSION['exists'] = true;
.... //continue on with normal request
Run Code Online (Sandbox Code Playgroud)


Eug*_*eck 5

过去所有记录的检查会话“新鲜度”的方法都让我失望,所以我倾向于这样做

$_SESSION['existing']=true;
Run Code Online (Sandbox Code Playgroud)

开始会话时,然后只是测试

if (isset($_SESSION['existing'])) ...
Run Code Online (Sandbox Code Playgroud)