PHP7.3关于session_id()的变化

PHP7.3 以前

首先看下面一段code。

1
2
3
session_save_path("/your_session_path");
session_start();
echo(session_id());

直观上讲,我们定义session的存放路径。开始一个session,然后去获取这个session的id。

如果是一个新的session,我们将获取到新生成的session_id, 作为PHPSESSID存放在Cookie之中。

如果传来的Cookie中已经存在PHPSESSID,我们期待输出其中的内容。

就算,

我指定的路径根本就没有全线放置Session。

PHP7.3

到了PHP7.3情况就发生了变化。

如果,我们对my_session_path有执行读写的权限,那一切OK,该生成新的就生成新的,改读取PHPSESSID就读取。

但是如果我们没有my_session_path的权限,那就麻烦大了。我们将获取不到session_id,获取的结果为空字符串。

后记

这个问题让我发现了长久以来其实后台的某个工具一直没有读写session path的权限。