【问题标题】:How to set cookie in php?如何在php中设置cookie?
【发布时间】:2021-03-22 15:16:54
【问题描述】:

我已使用此代码为初学者设置 cookie。它是基本的,没有太多复杂的代码。初学者容易理解。

if(!empty($_POST["remember"])) {
    setcookie ("username",$_POST["username"],time()+ 3600);
    setcookie ("password",$_POST["password"],time()+ 3600);
    echo "Cookies Set Successfuly";
} else {
    setcookie("username","");
    setcookie("password","");
    echo "Cookies Not Set";
}
```

【问题讨论】:

  • 为什么你在设置会话后还要设置 cookie?您也可以从会话变量中访问您的详细信息??
  • 永远不要在 cookie 中存储密码! 特别不是纯文本!如果您要存储密码,您应该首先使用password_hash() 对其进行哈希处理并将它们存储在服务器上。
  • @Hammad-ahmed-khan 是的,我可以从会话变量中访问数据,但我正在尝试是否可以在用户访问网站的同时设置会话时设置 cookie。
  • @Magnus-Eriksson 我只在我的本地服务器上尝试,它只是作为初学者级别的练习,刚刚开始学习 php。我可能什么都不知道,但只有从小任务我才能学会它,
  • 你从中学到的只是你不应该做的事情。从一开始就学会正确和安全地做事,以后您就不需要忘记“不良行为”(这很难,而且不是错误/安全问题的常见原因。)

标签: php session cookies login-script


【解决方案1】:

您需要在 header() 函数之前设置 cookie,
所以:

if(isset($_REQUEST['submit']))
    {
        $email="dummy@gmail.com";
        $password="dummy123";
    
        if($_REQUEST['email']==$email && $_REQUEST['password']==$password)
        {
            $_SESSION['email']=$email;
            setcookie("email",$email, time()+3600);
            setcookie("password",$password, time()+3600);
            header("location:index.php");
        }
        else {
            $err="Authentication Failed, Try Again!";
        }
    }
    ?>

但是在cookie中保存一个清晰的密码不是一个好主意:)注意

【讨论】:

  • 我完全明白保存纯密码是不好的做法,我知道我必须使用 md5 加密和密码哈希来确保密码的安全。谢谢。
猜你喜欢
  • 2018-04-03
  • 2012-05-18
  • 2012-01-28
  • 2012-06-22
  • 2014-10-27
  • 1970-01-01
  • 2017-07-23
  • 2015-03-13
相关资源
最近更新 更多