同一域中的多表单身份验证

时间:2015-06-09 08:40:32

标签: php forms authentication

我的网站在不同页面中有两种表单身份验证,具有不同的输入名称和指向不同页面的链接。问题是,当我将我的身份验证保存到表单的浏览器(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>";
    }
}}?>

2 个答案:

答案 0 :(得分:0)

您必须在用户表中添加另一个列,例如,如果您将值列设置为默认值super admin,moderator,user。现在您可以使用此列检查登录验证。如果用户名和密码和类型等于重定向到特定页面,那么您可以根据用户类型重定向不同的页面..

答案 1 :(得分:0)

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

就我而言,我们无法让浏览器意识到&#39;他们是不同的形式,他们不应该自动填充相同的数据。

有关浏览器检测表单的详细信息,请查看这两个答案answer1 answer2