Php setcookie()和$\u会话与SESSION.use\u only\u cookies的区别是什么?

Php setcookie()和$\u会话与SESSION.use\u only\u cookies的区别是什么?,php,session,cookies,session-cookies,Php,Session,Cookies,Session Cookies,我们可以通过setcookie()向访问者的浏览器发送一些cookie。使用$\u会话['value']定义值时,如果使用会话。仅使用\u cookies,会话将仅存储在访问者的浏览器上。这两种情况有什么不同 编辑:显然,它们基本上是不同的。我只是说他们的申请不同。我们可以在客户端设置一个值,该值可以在任何时候(当然在到期之前)使用$\u COOKIE或$\u SESSION进行检索;e、 g.识别返回的访客。cookie存储在客户端(即“在”客户端/浏览器中)。 _会话被序列化,然后存储在服务

我们可以通过
setcookie()
向访问者的浏览器发送一些cookie。使用
$\u会话['value']
定义值时,如果使用
会话。仅使用\u cookies
,会话将仅存储在访问者的浏览器上。这两种情况有什么不同


编辑:显然,它们基本上是不同的。我只是说他们的申请不同。我们可以在客户端设置一个值,该值可以在任何时候(当然在到期之前)使用$\u COOKIE或$\u SESSION进行检索;e、 g.识别返回的访客。

cookie存储在客户端(即“在”客户端/浏览器中)。

_会话被序列化,然后存储在服务器上。此数据与会话id关联。例如,当使用默认文件系统会话处理程序时,文件名反映会话id。客户端(或脚本)必须在后续请求中提供该会话id,以便php的会话管理可以/将再次加载会话数据。其中一个方法是使用cookies<代码>会话。使用_only_cookies=On让php的会话机制只在cookies中查找会话ID。

这些是完全不同的事情:

  • setcookie()
    在浏览器中设置cookie,但这通常不是会话cookie。使用
    session\u start()
    创建的会话cookie
  • $\u SESSION[]
    设置/获取服务器端会话的值
  • 会话。仅使用cookies
    将确保会话id仅与cookie一起发送,而不是在url中发送

  • 否,当您设置
    会话时。仅使用\u cookies
    ,会话中的数据不会存储在客户端。此设置仅影响在客户端和服务器之间传输会话ID的方式

    基本上有两种方式传输此会话ID:

    • 基于Cookie的
    • 基于URL(使用GET变量,如PHPSESSID=…)

    当使用设置
    会话时。仅使用\u cookies
    ,它阻止使用URL传输会话ID,只能使用cookie。

    当我们设置会话时。仅使用\u cookies,会话也将存储在客户端。这确实是我的问题。不,只有会话id作为cookie传输;不是会话数据本身,这是一个有趣的问题(至少对我来说)。那么,您的意思是,我们只在客户端存储会话ID,当我们运行$\u会话时,我们从访问者的浏览器中读取会话ID,并根据ID从服务器读取会话的相应值?@Ali use\u only\u cookies只影响会话ID,而不影响会话数据。如果您将此设置为tue,PHP将仅使用存储在Cookie中的会话ID来标识用户。会话数据始终存储在服务器上。看见