我有一个网站,该网站在不同页面中具有两种形式的身份验证,具有不同的输入名称和指向不同页面的链接。问题是,当我将身份验证保存到表单的浏览器(chrome)中时,浏览器会用其他表单中的相同数据填充字段。这怎么可能?

第一种形式

<form action="" method="POST" enctype="multipart/form-data">
              <div class="form-group">
                <label for="exampleInputEmail1">Email</label>
                <input type="email" name="private_email" class="form-control" id="email1" value="" placeholder="Enter email" required>
              </div>
              <div class="form-group">
                <label for="exampleInputPassword1">Password</label>
                <input type="password" class="form-control" name="private_password" value="" id="password1" placeholder="Password" required>
              </div>
              <input type="submit" name="login" class="btn btn-default" value="Login">
            </form>

第二形式(cms的形式)
<form action="http://escuolainsieme.it/shop/login" method="post" id="login_form" class="box">
            <h3 class="page-subheading">Sei già registrato?</h3>
            <div class="form_content clearfix">
                <div class="form-group form-ok">
                    <label for="email">Indirizzo email</label>
                    <input class="is_required validate account_input form-control" data-validate="isEmail" type="text" id="email" name="email" value="">
                </div>
                <div class="form-group">
                    <label for="passwd">Password</label>
                    <span><input class="is_required validate account_input form-control" type="password" data-validate="isPasswd" id="passwd" name="passwd" value=""></span>
                </div>
                <p class="lost_password form-group"><a href="http://escuolainsieme.it/shop/recupero-password" title="Recupera la password dimenticata" rel="nofollow">Hai dimenticato la password?</a></p>
                <p class="submit">
                    <input type="hidden" class="hidden" name="back" value="my-account">                     <button type="submit" id="SubmitLogin" name="SubmitLogin" class="button btn btn-default button-medium">
                        <span>
                            <i class="icon-lock left"></i>
                            Entra
                        </span>
                    </button>
                </p>
            </div>
        </form>

Login.php
<?php session_start(); // Starting Session
$error = ''; // Variable To Store Error Message
if (isset($_POST['private_login'])) {
if (empty($_POST['private_email']) || empty($_POST['private_password'])) {
    $error = "<div class='alert alert-danger'>Compila tutti i campi</div>";
} else {
    $email = mysqli_real_escape_string(conn(), $_POST['private_email']);
    $password = mysqli_real_escape_string(conn(), $_POST['private_password']);
    $cls_utente = new utente();
    if ($cls_utente->check_user($email, $password) == 1) {
        $_SESSION['login_user'] = $email; // Initializing Session
        $_SESSION['is_logged']  = true;
    } else {
        $error .= "<div class='alert alert-danger'>Email o password errati</div>";
    }
}}?>

最佳答案

您可以尝试使用autocomplete="false"autocomplete="off"禁用它,但不确定是否可以使用,请尝试一下。

就我而言,不可能使浏览器“意识到”它们是不同的形式,并且不应使用相同的数据自动填充它们。

查看这两个答案answer1 answer2,以了解浏览器如何检测表单的更多信息。

关于php - 同一域中的多表单例份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30727014/

10-11 22:23
查看更多