如何获取/设置session_id()或是否应自动生成?

gra*_*rai 6 php session unique

我的应用程序中有一些基本的会话处理.在每个页面中,我检查用户是否已登录.如果是,那么他们已经被识别$_SESSION['user_id'],并且他们的登录/注销被记录在MySQL表中.

我还想记录基于唯一ID的访客(未登录)的访问.我曾经假设,一旦session_start()被调用,内部session_id会自动生成,并且调用session_id()我可以检索它.但这只是给出了一个"未定义的变量"错误,所以我想我必须手动设置..?如果是这样,那么什么是最好的方式,以便它是一个唯一的ID,或者通常的方法是什么?

谢谢你的帮助...

Bri*_*ian 31

在PHP中有两种方法可以使用会话和会话ID:

1 - 自动生成会话ID并获取它:

session_start();
$id = session_id();
Run Code Online (Sandbox Code Playgroud)

2 - 手动设置会话ID,然后启动它:

session_id( 'mySessionId' );
session_start();
Run Code Online (Sandbox Code Playgroud)

如果您打算设置会话ID,则必须调用session_start()之前设置它; 如果您打算生成一个随机session_id(或继续在先前页面请求中已经启动的那个),然后获取该ID以供在其他地方使用,则必须session_start() 尝试使用之前调用session_id()以检索会话ID.