Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql登录问题$\u POST['username']=$result['username']_Php_Mysql_Database_Forms_Login - Fatal编程技术网

php mysql登录问题$\u POST['username']=$result['username']

php mysql登录问题$\u POST['username']=$result['username'],php,mysql,database,forms,login,Php,Mysql,Database,Forms,Login,我是一个初学者,我已经从零开始编写了自己的PHP登录代码,但仍然有一些错误,下面是代码: <?php include 'connection.php'; $query = " SELECT * FROM admin"; $result = mysql_query($query) or die(mysql_error()); ?> <form action="<?php echo $_SERVER['SELF_PH

我是一个初学者,我已经从零开始编写了自己的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登录获得更简单的方法,请告诉我:

有几件事

不要使用mysql函数 您需要使用==来比较字符串,而不是= 您需要实际查看查询结果

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接口

在其他几个bug中,比如assignment=而不是等于==

试着这样做:

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

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

?>

您遇到了什么错误?几个注释:if$username=$result['username']{应该是if$username==$result['username']{与if$password=$result['password'相同]{.So如果你想知道什么是相等的,就用==代替=。第二:不要使用mysql。使用mysql或准备好的语句。你需要mysql_fetch_*函数!尽管使用了mysql_*函数,我看不到任何潜在的SQL注入攻击;只进行了静态查询。当插入到一个q中时,比较不需要转义ueryFair足够了,mysql函数仍然不应该被使用-但是他是对的,如果你不插入,那么你就没有风险。我想虽然他在任何地方都使用这些方法,所以请注意。我相信你的花括号是无与伦比的