Issue with php mysql login $_POST['username'] = $res


Issue with php mysql login $_POST['username'] = $result['username']

我是初学者,我已经从0开始编写了自己的PHP登录,但我仍然有一些错误,下面是代码:

        <?php 
    include 'connection.php';
    $query = " SELECT * FROM admin";
    $result = mysql_query($query) or die(mysql_error());
    ?>
    <form action="<?php echo $_SERVER['SELF_PHP']; ?>" method="post">
        Username : <input type="text" name="usernameInput" value="" />
        Password : <input type="password" name="passwordInput" value="" />
                    <input type="submit" value="Login" />
    </form>
    <?php
    $username = $_POST['usernameInput'];
    $password = $_POST['passwordInput'];
    if ($username = $result['username']) {
        if ($password = $result['password']){
            header('Location: admin.php');
        } else {
            echo "PASSWORD IS INCORRECT";
        }
    } else {
        echo "USERNAME IS INCORRECT";
    }
    ?>

所以如果你能解决这个问题,或者从PHP登录中得到一个更简单的方法,请告诉我。:)

几件事…

  1. 不要使用mysql函数
  2. 您需要使用==来比较字符串,而不是=
  3. 你需要实际获取你的查询结果

    include 'connection.php';
    $query = " SELECT * FROM admin";
    $result = mysql_query($query) or die(mysql_error()); 
    $row = mysql_fetch_row($result); /* add this */
    ?>
    <form action="<?php echo $_SERVER['SELF_PHP']; ?>" method="post">
        Username : <input type="text" name="usernameInput" value="" />
        Password : <input type="password" name="passwordInput" value="" />
                    <input type="submit" value="Login" />
    </form>
    <?php
    if(isset($_POST['usernameInput']) && isset($_POST['passwordInput'])){
        $username = $_POST['usernameInput'];    
        $password = $_POST['passwordInput'];
    }
    else{
       echo 'some error ...';
    }
    if($username == $row ['username'] && $password == $row ['password']){
        header('Location: admin.php');
    } 
    else{
        echo ' username or password is wrong';
    }
    ?>
    

我必须指出你没有先检查邮件就一次又一次地发送相同的表单。当你发送表单时,你将无法发送重定向,因为html已经启动并且头已经发送了。

Mysql函数已弃用,请使用mysqli接口。

在其他几个错误中,如assignment =而不是is equal ==

试试这样:

如果没有post存在,发送表单else检查,如果ok则重定向或不ok。重新发送表单

<?php 
if($_POST){
    include 'connection.php';
    $query = " SELECT * FROM admin";
    $r = mysql_query($query) or die(mysql_error());
    // get an associated array from query result resource. 
    $result = mysql_fetch_assoc($r);  
    $username = $_POST['usernameInput'];
    $password = $_POST['passwordInput'];
    if (  ($username == $result['username'])
       && ($password == $result['password'])){
        header('Location: admin.php');
        exit(0);
    } else {
        echo "PASSWORD IS INCORRECT";
    }
} 
?>
<form action="<?php echo $_SERVER['SELF_PHP']; ?>" method="post">
    Username : <input type="text" name="usernameInput" value="" />
    Password : <input type="password" name="passwordInput" value="" />
                <input type="submit" value="Login" />
</form>
<?php
?>