【发布时间】:2022-02-21 07:03:23
【问题描述】:
我有一个记住我登录的按钮,我在其中检查它是否设置了我为电子邮件和密码设置了 cookie,以便稍后如果用户尝试登录并将它们放在他们的字段中,如果记住我按钮是,则销毁它们未选中。
if(isset($_POST["rememberme"])) { //set cookie if checkbox is checked
setcookie ("member_ID", $userMail, time()+ (86400));
setcookie ("member_Password", $password, time()+ (86400));
}else { //delete cookie if checkbox is not checked
if(isset($_COOKIE['member_ID']) && isset($_COOKIE["member_Password"])) {
$CookieID = $_COOKIE["member_ID"];
$Cookiepassword = $_COOKIE["member_Password"];
setcookie("member_ID", $CookieID, time() - 1);
setcookie("member_Password", $Cookiepassword, time() - 1);
}
}
这是将 cookie 放入用户输入字段的代码
if(isset($_COOKIE['member_ID']) && isset($_COOKIE["member_Password"])){
echo '
<div class="LoginContainer">
<form action="'.$_SERVER["PHP_SELF"].'" method="post">
<div class="loginSpacing">
<div>
<label for="userID" >Email</label>
</div>
<div>
<input id="userID" name="userMail" required value="'.$_COOKIE['member_ID'].'"type="text">
</div>
</div>
<div class="loginSpacing">
<div>
<label for="Loginpass" >Password</label>
</div>
<div>
<input id="Loginpass" name="Loginpass" required value="'.$_COOKIE["member_Password"].'"type="password" data-type="password">
</div>
</div>
<div>
<input id="rememberme" type="checkbox" name="rememberme" value="1" checked = "checked">
<label for="rememberme" style="font-size:18px;font-size: 18px;"><span ></span> Keep me Signed in</label>
</div>
<div>
<input type="submit" name="submit" class="SignIn-btn" value="Sign In">
</div>
</form>
</div>
';
}
所以在 xampp 本地主机上它可以完美运行。但是一旦我在网上发布它就不起作用了,我不知道为什么。我确定变量 $userMail 和 $password。我可以做些什么或缺少什么来完成这项工作,如果你们有任何建议可以使机制更好
【问题讨论】:
-
我不知道您的问题的答案,但您确实意识到您似乎将纯文本用户名和密码存储在访问者计算机上?这些 cookie 可以在访问者离开后保留在那里,并被其他任何人拾取。
-
所以你推荐使用哈希函数?我只是想让它工作,然后可能会加密它
-
是的,对密码进行哈希处理是一回事,但不要在 cookie 中存储任何敏感信息。只是不要。尝试为此使用会话。
标签: php cookies xampp setcookie