我的应用程序中有一些基本的会话处理。在每个页面中,我检查用户是否已登录。如果是,则它们已由$_SESSION['user_id']
标识,并且他们的登录/注销记录在MySQL表中。
我还想根据唯一ID记录来宾(未登录)的访问次数。
我曾假设,一旦调用session_start()
,就会自动生成内部session_id
并调用session_id()
我可以检索此内容。但这只是给出了一个“未定义的变量”错误,所以我想我必须手动设置..?如果是这样,那么什么是最好的方式,以便它是一个唯一的ID,或者通常的方法是什么?
感谢您的帮助......
答案 0 :(得分:30)
在PHP中有两种方法可以使用会话和会话ID:
1 - 自动生成会话ID并获取它:
session_start();
$id = session_id();
2 - 手动设置会话ID,然后启动它:
session_id( 'mySessionId' );
session_start();
如果您打算设置会话ID,则必须先设置 调用session_start();
如果您打算生成一个随机的session_id(或继续在上一页请求中启动一个),然后获取该ID以供在其他地方使用,则必须先调用session_start()
尝试使用session_id()
检索会话ID。
答案 1 :(得分:1)
在这里你可以看到它对我有用(会话以静默方式启动):http://sandbox.phpcode.eu/g/f6b6b.php
你忘了开始你的课程,可能是
答案 2 :(得分:0)
嗯,这可能有点奇怪,但是当我需要唯一ID时我会使用uniqid()