繁体   English   中英

PHP记住我的Cookie问题

PHP Remember Me Cookie Issue

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个带有“记住我”复选框的登录表单,该复选框将用户电子邮件设置为cookie,然后我希望在下次用户登录时自动填写用户名。此外,当我使用firbug时,它会显示cookie的路径login.php页面所在的目录。 index.phplogin.php目录不在同一目录中。

所以我有带有登录表单的index.php页面。 当用户提交表单时,它将调用login.php ,其中包含以下代码:

if (isset($_POST['email'])) {
        if (isset($_POST['remember'])) {
            setcookie("email", $_POST['email'], time() + 9999999);
            $_COOKIE['email'] = $userEmail;
        }
    }

然后在index.php代码上,我有以下代码:

$userEmail = $_COOKIE['email'];

然后使用$userEmail变量自动填充用户$userEmail段,如下所示:

<div class="form-group <?php if(isset($userEmail)) { echo $addClass; }?>" >
    <input type="email" name="email" id="email" class="form-control input-lg" placeholder="Email Address" value="<?php if(isset($userEmail)) { echo $userEmail; } ?>">
</div>

我可以看到正在设置cookie,但是当我尝试回显cookie(电子邮件地址)时,它什么也不显示。

我知道我可能并没有尽力而为,但是它曾经可以正常工作,现在却停止了工作。 关于我在做什么错的任何建议吗?

编辑:当我使用Firebug时,我会在Cookies选项卡中看到以下内容:

  • 名称:电子邮件
  • 值:电子邮件地址
  • 路径:这是与我当前所在页面不同的路径

当我var_dump($_COOKIE['email'])时显示NULL

3 个回复
if (isset($_POST['email'])) {
        if (isset($_POST['remember'])) {
            setcookie("email", $_POST['email'], time() + 9999999);
            $_COOKIE['email'] = $userEmail;
        }
    }

看一行$_COOKIE['email'] = $userEmail; 这应该是$userEmail = $_COOKIE['email']; 因为$userEmail还没有$userEmail提供值,所以您实际上是将$_COOKIE['email']设置为空值。

或者,或者您需要设置$_COOKIE['email'] = $_POST['email'];

我认为 :

if(isset($userEmail))

应该 :

if(isset($userEmail) && !empty($userEmail) ) 

感谢您提供所有答案,但是此更改已解决了该问题。 它将cookie的路径设置为login.php页面所在的目录,因此我必须为所有目录设置cookie的路径。

我改变了这个:

if (isset($_POST['email'])) {
    if (isset($_POST['remember'])) {
        setcookie("email", $_POST['email'], time() + 9999999);
        $_COOKIE['email'] = $userEmail;
    }
}

对此:

if (isset($_POST['email'])) {
        if (isset($_POST['remember'])) {
            $userEmail = $_POST['email'];
            setcookie("email", $userEmail, time() + 9999999, "/");
        }
    } 

我在setcookie添加了"/"

1 PHP记得我,COOKIE

我不知道哪里出了问题。 当我勾选记住我的复选框页面没有进入userarea页面,似乎cookie不能正常工作当我刚登录时没有勾选记住我复选框 ...

2012-12-06 09:12:25 2 10181   php
2 验证cookie插件记住我功能问题

我在我的项目中使用了authenticatecakephp插件,我想利用插件的cookieauthenticate类,问题是插件不读取cookie来验证它是否已超过有效期,因为当我更改日期时在我的系统中,即使我的Cookie的日期尚未过期,用户仍将注销。 当我验证时,我发现它仅使用CakePH ...

3 如何在PHP中记住我(cookie)

我正在制作一个登录页面。 所以我已经可以登录到另一个页面。 然后在我的登录页面中我需要记住我复选框和PHP。 那么在这段代码中,我需要将“记住我”代码放在哪一部分? 请帮我。 这是login1.php 这是我的HTML ...

4 “记住我”-cookie中要保留什么? -PHP [重复]

这个问题已经在这里有了答案: 对网站实施“记住我”的最佳方法是什么? [已关闭] 4个答案 好, 过去,当客户端连接到站点时,我将其保留为$_SESSION 。 现在,我想使用Cookie来“记住我”。 出于安全原因,我应该把cookie的值放在 ...

5 PHP记住我的问题功能注销问题

美好的一天,所有我需要新鲜的眼睛....我已经建立了一个登录系统,除了“记住我”功能外,它还可以正常工作...如果我不检查记住我,该网站将按应有的方式运行...如果我勾选“记住我,这是发生什么情况”,它将保持登录状态,但是如果我单击“注销”,它将注销,但是如果我尝试重新登录,则表明无法显示页面。 ...

6 Symfony 4记住我的cookie

我用“记住我”配置了Symfony 4项目。 它正在创建一个带有过期日期的REMEMBERME cookie,但是一旦过期,我就不会注销。 Security.yaml 登录树枝 AdminController 用户角色 我想念什么? REMEMBERME ...

7 记住我饼干

我试图弄清楚如何处理这种情况。 我有以下用于登录用户的行,但是在这种情况下,记住表单表单提交后可能没有设置参数post,因此我仍然希望它通过此功能发送0作为其值。 这是表单元素: 尽管drew010有一个很好的答案,但这不是我想走的路,所以我问其他人是否有任何想法? ...

8 记住我饼干伪造

当用户登录并选中“记住我”框时,我为其生成密钥(在md5上非常随机),并保存在cookie中。 如果未登录用户,则我的代码将检查“记住我的密钥” cookie,如果与用户匹配,则表明他已登录。 我的问题是,如何阻止用户应对他们的“记住我”密钥cookie并将其传递给朋友? 因为如果这样 ...

9 Symfony 3记住我的cookie

我试图在我的symfony 3应用程序中直接授权用户,例如: Symfony调试:security.DEBUG:检测到记住我的cookie。 但是,我一直收到错误消息:“ security.DEBUG:Remember-Me身份验证失败,cookie的哈希无效”。 怎么了? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM