【问题标题】:Cookies and sessionsCookie 和会话
【发布时间】:2014-10-20 13:33:23
【问题描述】:

我想知道创建和销毁会话/cookie 的正确方法。

我使用以下:

创建会话/cookie 值:

session_start();
$_SESSION['SMUsername'] = $Username;

setcookie("SMUsername",$Username, time()+86400, "/","www.Domain.com","False","True");

要销毁会话/cookie 值:

session_destroy();

if(isset($_COOKIE['SMUsername'])){
    setcookie("SMUsername","", -1, '/');    
}

这是一个好方法,还是“未完成”?

此外,我已阅读以下主题: Remove a cookie

它说永远不要存储带有用户名和/或密码信息的 cookie。如果没有 cookie,你还能如何使用记住我之类的功能?

当新浏览器打开时,我使用 cookie 来记住用户。 (虽然加密,使用 md5) 使用另一个选项卡重新打开网站时,我使用会话来记住用户。这样可以吗?

【问题讨论】:

  • 猜猜这个问题之前已经回答过了:stackoverflow.com/questions/1226040/…
  • 这只是关于会话,而不是关于 cookie。它也没有回答 cookie 是否是记住我功能的良好媒介。
  • SESSION 使用 cookie(通常称为 PHPSESSSIONID)来识别正确的会话数据 - 无需自己编写 cookie。只需使用会话
  • @Sliver2009 它是目前唯一有意义的媒介。虽然你可以用 localStorage 和 JavaScript 来做点什么,但是如果 cookie 已经具备了你需要的所有功能,那就太愚蠢了。
  • @Steve 这对“记住我”功能没有帮助。

标签: php session cookies


【解决方案1】:

您的会话/cookie 销毁代码很好。

至于如何记住我,这超出了这个答案的范围。不过,请查看this 说明如何操作。

简而言之,您保存用户名的哈希值和其他一些随机字符串,并将其保存在数据库中,然后在用户呈现它时进行比较。

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 2011-07-15
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多