Cookie和会话是否相互依赖?

时间:2012-11-16 06:52:23

标签: php session cookies dependencies relationship

PHP中的cookie和会话是否相互依赖?

删除或清除其中任何一个会影响另一个吗?

通过在浏览器中禁用其中任何一个会影响另一个吗?

P.S。我是新手。

编辑:在撰写问题时我是新手。许多新手都面临着这个问题。

4 个答案:

答案 0 :(得分:1)

他们完全独立 ......

  • Cookie无法存储无限值,会话可以
  • 如果禁用用户浏览器cookie,则无法在cookie中存储数据,因为会话ID可以附加到URL
  • 最好在会话中存储数据,而不是存储在cookie中,因为cookie可以缓和
  • 如果您删除了Cookie,那么只有您网站中的某些功能会被禁用,您将在其中检索这些Cookie数据,但您将登录并且如果您删除了会话Cookie,则您将被注销。(1 )
  • Cookie存储在会话存储在服务器上的客户端计算机上
  • 如果您在Cookie停留时关闭浏览器,则会话结束,除非用户手动删除它们或者它们已过期

您可以更好地控制会话而不是使用Cookie

(1)例如,如果您正在设置Cookie名称demo,并且您正在使用启动画面,除非并且直到演示设置为止,您将显示启动画面

if(!isset($_COOKIE['demo'])) { //Now this will show lightbox always if user has disabled his cookies
   <script>...</script>
}

文章

http://www.klovera.com/php-sessions-vs-cookies/

参考

Session

Cookies

答案 1 :(得分:1)

会话存储在服务器上,而cookie则存储在客户端上。您只能从浏览器中禁用Cookie。 Cookie根本不会影响会话。如果禁用cookie会话ID通过URL传递。如果您的cookie已启用且会话ID通过删除cookie存储在cookie中,您将无法访问您的会话(它仍在服务器上,但您无法访问它)

会话也不会影响cookie。

答案 2 :(得分:1)

它们没有连接,但默认情况下,PHP将会话ID存储在cookie中,指令session.use_cookies默认为1

如果禁用cookie,则使用URL。这可以使用session_use_trans_id.设置(默认为禁用)

但如果您在客户端删除会话cookie,则对服务器的下一个请求将无法找到其关联的会话

清除会话不会影响cookie,因为cookie附加了从客户端到服务器的HTTP请求。可以将cookie设置为在x时间后过期,之后将在客户端删除它。

答案 3 :(得分:0)

所有答案都是正确的,只是想添加它 - 如果你没有设置cookie的时间戳,那么cookie取决于会话,它会在会话结束后立即过期。