为记住我设置Cookies - PHP与Javascript

时间:2012-02-06 16:34:31

标签: php javascript cookies

我正在关注此SO Question和此SO Question以设置记住我。然而,当我在Google中提取Cookie时,我会获得PHP和Javascript方法。哪种方式更好,还是需要同时使用?我有一个PHP和Javascript代码库,我需要一个起点。我看到关于javascript与php for cookies的大量SO文章,但这不是我要问的..我知道服务器端和客户端编程之间的区别以及cookie是什么......但是看不清楚回答如何设置/检索cookie。我的假设是:

设置cookie:

用户登录时使用PHP并设置“记住我”。虽然客户端此时具有控制权,但凭据必须传递回PHP以进行验证。验证完成后,设置一个cookie并存储令牌。

检查cookie:

使用PHP,因为当用户第一次从您的Web应用程序请求页面时首先调用PHP,因此检查那里的cookie并确定要发送给用户的数据。

所以我猜两种方式都是PHP。

如果我是正确的......如果是的话,javascript cookies用于什么?

相关

W3 Schools - PHP Cookies

PHP.net

2 个答案:

答案 0 :(得分:2)

如果javascript不可用,Javascript方式将无效,而设置cookie服务器端保证可以正常工作,除非用户明确阻止了cookie。在javascript中操作cookie(通过document.cookie)并不是一种有趣的体验,而PHP提供了$ _COOKIE(和$ _SESSION,它间接依赖于最常见的使用模式中的cookie),这些处理起来要简单得多。在PHP中设置的cookie可以在Javascript中访问,除非另有说明(我会得到)并且我不知道在javascript中处理安全cookie(通过https发送)会是什么样的,但我不认为它会很愉快的。

只有使用服务器端技术设置Cookie时,才能将Cookie设置为HTTP。设置后,仅支持HTTP的cookie的浏览器将拒绝访问javascript的cookie。这很重要,因为javascript可用于窥探cookie并窃取其内容,将其发送给窃听者。 HTTP仅限cookie可防止此类滥用。

简而言之,我会选择PHP来设置你的cookie。

答案 1 :(得分:2)

Javascript Cookie通常用于根据用户偏好设置页面上元素的位置/颜色。例如,具有多个不同主题的网站(例如“黑暗”,“浅色”)和用于更改页面侧面的当前主题的按钮可以存储用户使用cookie选择的主题,以便下次用户访问网站页面主题将是相同的。此信息也可以存储在服务器端,但出于隐私原因,最好存储客户端,特别是如果用户在网站上没有帐户。

最重要的是,你应该使用php来处理对你网站功能至关重要的任何cookie,并使用javascript cookies作为网站的表面方面,例如主题。