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

时间:2011-08-15 18:11:59

标签: php session unique

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

我还想根据唯一ID记录来宾(未登录)的访问次数。 我曾假设,一旦调用session_start(),就会自动生成内部session_id并调用session_id()我可以检索此内容。但这只是给出了一个“未定义的变量”错误,所以我想我必须手动设置..?如果是这样,那么什么是最好的方式,以便它是一个唯一的ID,或者通常的方法是什么?

感谢您的帮助......

3 个答案:

答案 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()