【问题标题】:PHP display cookies and remove suggested in browserPHP 显示 cookie 并在浏览器中删除建议
【发布时间】:2020-04-02 06:55:47
【问题描述】:

如何让这个 cookie 代码正确显示?在 Google Chrome 和 Firefox 中,我都会从浏览器中获得下拉建议。我只想显示我自己的 php "setcookie"。

PHP:

index.php:

      <form action="index.php" method="POST">
        <div class="row">
            <div class="form-group">
              <input type="email" class="form-control fill-bar" name="email" aria-describedby="emailHelp" placeholder="Email"
              value="<?php
              if(isset($_COOKIE["username"])) {
                if(isset($_POST["email"])) {
                  echo($_POST["email"]);
                }
              } ?>" required>
            </div>
            <div class="form-group">
              <input type="password" class="form-control fill-bar" id="passwd" name="password" placeholder="Password" value="<?php if(isset($_COOKIE["password"])) { echo $_COOKIE["password"]; } ?>" required>
            </div>
            <p><input type="checkbox" name="remember" class="mr-1">Remember Me</p>
            <a href="reset-password.php" class="color-mwc-orange blue-hover">Forgot your password?</a>
            <br><br><br>
            <input type="submit" class="btn d-inline btn-primary register_button mr-3 w-100" id="login" name="login" value="Login">

            <p class="text-center mt-3">No account yet? <a href="register.php" class="color-mwc-orange blue-hover">Register Here</a></p>
            <br>
          </div>
        </div> <!-- end row -->
      </form>

page-2.php:(如果点击了 isset 登录按钮)

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

Google 和 Firefox 都显示这些,而不是我的“setcookie”,我希望它们不显示。

【问题讨论】:

  • 尝试在您的输入中使用autocomplete="off"

标签: php authentication cookies browser


【解决方案1】:

在您的表单中,将autocomplete 属性添加到您的输入并将其设置为off,如下所示:

<form action="index.php" method="POST">
    ...
    <div class="form-group">
        <input type="password" class="form-control fill-bar" id="passwd" name="password" placeholder="Password" value="<?php if(isset($_COOKIE["password"])) { echo $_COOKIE["password"]; } ?>" autocomplete="off" required>
    </div>
    ...
</form>

这应该足以防止自动完成。但是,browsers are not required to follow that attribute。您可以检查当前哪些浏览器符合autocomplete 属性here。在浏览器不尊重autocomplete 属性的情况下,您可以尝试使用方法来修改输入名称(例如jQuery plugins 或使用PHP 生成随机名称并将这些名称存储在用户的会话中,并验证表单与提交时的会话)。

【讨论】:

  • 自动完成关闭不会删除建议的下拉信息
  • 出于某种原因 autocomplete="new-password" 做到了
猜你喜欢
  • 2011-07-22
  • 2013-07-22
  • 2010-11-19
  • 2011-02-18
  • 2015-06-13
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 2012-06-04
相关资源
最近更新 更多