Php session_start()返回set cookie头,即使我没有';在$\u会话中不存储任何内容

Php session_start()返回set cookie头,即使我没有';在$\u会话中不存储任何内容,php,session,cookies,Php,Session,Cookies,我有一个check\u login函数,它执行session\u start()以检查用户是否登录。 如果用户未登录,则页面将返回一个带有PHPSESSID的set cookie头 当我在$\u会话变量中未存储任何变量时,是否有方法禁用此set cookie标头 我不想要这个set cookie头的原因是,我正在实现一个反向代理服务器(varnish)只有当会话id在url中传递时,这不是一个好主意 我在这里找到了这个问题的答案: 但是为什么它需要设置一个cookie呢?我没有使用这个会话。。

我有一个
check\u login
函数,它执行
session\u start()
以检查用户是否登录。
如果用户未登录,则页面将返回一个带有PHPSESSID的set cookie头
当我在$\u会话变量中未存储任何变量时,是否有方法禁用此set cookie标头


我不想要这个set cookie头的原因是,我正在实现一个反向代理服务器(varnish)

只有当会话id在url中传递时,这不是一个好主意


我在这里找到了这个问题的答案:


但是为什么它需要设置一个cookie呢?我没有使用这个会话。。我只需要检查用户是否已登录。如果您正在使用会话,您将启动会话。会话启动后,将在客户端上设置一个具有会话id的cookie,这样,除非您使用url,否则可以记住该客户端的cookie。如果会话不包含任何数据,则销毁该会话如何?我刚想到。。使用session_destroy()启动会话,获取会话cookie。在我看来,这是合乎逻辑的。或者,您可以调整代码逻辑,使其仅在需要时启动会话。这取决于在尝试身份验证之前不创建会话——这不是原始问题的一部分,这是一种非常不寻常的情况。然而,这是一个非常奇怪的组合,您知道在进行身份验证之前您不会创建会话,并且您希望检查您是否(没有)创建了会话
if (isset($_COOKIE[session_name()])) {
   ... most likely there's a session available to be loaded ...
}