-2

我有点'初学者,我已经从零编写了我自己的 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 登录获得更简单的方法,请告诉我。:)

4

2 回答 2

2

一些东西...

  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';
    }
    
    ?>
    
于 2013-03-24T20:34:59.817 回答
0

我必须指出,您在没有先检查帖子的情况下一遍又一遍地发送相同的表格。当您发送表单时,您将无法将标头发送到重定向,因为 html 已启动并且标头已发送。

不推荐使用 mysql 函数,请使用 mysqli 接口。

在其他几个错误中,例如 assignment = 而不是等于 ==

试试这种方式:

如果不存在帖子,请发送表格,否则检查是否可以重定向或不可以。重新发送表格

<?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

?>
于 2013-03-24T20:40:11.020 回答