Php 会话\u id不使用会话\u名称

Php 会话\u id不使用会话\u名称,php,sessionid,Php,Sessionid,我正在使用session_名称将我的session重命名为'xxx'。使用此功能,我还可以使用session\u start启动会话。我还可以在浏览器中看到正在设置的cookie //设置会话 login.php 但问题是,我无法使用另一个脚本中的session_id调用检索会话id 另一个.php 我知道我可以继续阅读cookie以查看会话是否已设置。但我只是想知道为什么这不起作用。session\u id函数在设置session\u名称后是否会检索我的session id 我们知道sessi

我正在使用session_名称将我的session重命名为'xxx'。使用此功能,我还可以使用session\u start启动会话。我还可以在浏览器中看到正在设置的cookie

//设置会话

login.php 但问题是,我无法使用另一个脚本中的session_id调用检索会话id

另一个.php 我知道我可以继续阅读cookie以查看会话是否已设置。但我只是想知道为什么这不起作用。session\u id函数在设置session\u名称后是否会检索我的session id

我们知道session\u start将打开我现有的session,但另一方面,如果根本没有session,那么它将启动一个新的session。如果尚未启动新会话,我不希望启动它


我做错了什么?

在使用
session\u start
启动会话之前,将不会有
session\u id
session\u name
只设置cookie/URL参数名,不启动会话


是的,您需要
start()
在每个页面上使用会话。

我们如何知道会话是否已经启动。我们必须进行预检查,对吗?您可能误解了
session\u start
的功能。它在PHP中启动会话系统。它不会“开始”新的会话。如果当前用户已有会话,
session\u start
将使用该会话启动会话系统。因此,您需要在每一页上调用它。
session_name('xxx');
session_start();
session_name('xxx');

$id = session_id();
echo $id // This is showing empty

var_dump($_COOKIE) // This is showing the cookie xxx with the session id 

if(!empty($id))
{
  //If he is already logged in, lets get his details
  session_start();
}