PHP中的cookie是真的吗?

时间:2010-07-31 06:26:29

标签: php cookies session

如果脚本设置了cookie并且用户的浏览器设置为不接受cookie,那么set cookie函数是否会检测到这一点并改为设置会话?

2 个答案:

答案 0 :(得分:9)

没有

此外,Cookie和会话无法直接比较。事实上,cookie是会话实施的典型部分。

当然,您可以检测用户是否接受cookie。服务器端可以通过设置cookie,转发用户并检查用户是否在新请求中发送刚设置的cookie来实现。

请记住:

  • 会话是一个更抽象的概念;它将用户与服务器端存储的某些数据相关联。这通常用cookie实现 - cookie存储一个标识存储数据的密钥;用户在每个请求上发送此密钥,以便服务器可以知道要使用哪些数据。 Cookie的替代方法是在每次请求时在URL中传递此密钥。这是不太理想的,因为它污染了URL并可能使用户面临一些安全风险(会话固定)。
  • Cookie只是服务器请求用户在每次请求时(向自身或某些更广泛的服务器集)发回的数据。

答案 1 :(得分:1)

我猜你的意思是session.use_trans_sid设置:

如果设置此设置:ini_set('session.use_trans_sid',1); 如果没有可用的cookie,则PHP会将会话ID附加到URL。