PHP显示cookie并在浏览器中删除建议的内容

问题描述 投票:2回答:1

如何获取此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";
            }

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

1

2

php authentication cookies browser
1个回答
0
投票

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

<form action="index.php" method="POST" autocomplete="off">
    ...
    <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生成随机名称并将这些名称存储在用户会话中,并验证表单与提交的会话)。

© www.soinside.com 2019 - 2024. All rights reserved.