Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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-怎么了?_Php_Mysql_Login_Passwords - Fatal编程技术网

Php 简单登录连接到MySQL-怎么了?

Php 简单登录连接到MySQL-怎么了?,php,mysql,login,passwords,Php,Mysql,Login,Passwords,我研究了如何做一个简单的登录 但是当我现在尝试登录时,它说用户名或密码是错误的。所以我猜我的控件dokument有点不对劲,我正在检查数据库的用户名和密码 在这个例子中,我看到他们都在同一页上,所以我猜我需要改变的比我想象的更多 这是loginside中的代码: <?php session_start(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /

我研究了如何做一个简单的登录

但是当我现在尝试登录时,它说用户名或密码是错误的。所以我猜我的控件dokument有点不对劲,我正在检查数据库的用户名和密码

在这个例子中,我看到他们都在同一页上,所以我猜我需要改变的比我想象的更多

这是loginside中的代码:

<?php
session_start();
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <link href="stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <?php
        if(!isset($_SESSION["sess_user"])){
            if(isset($_GET['badlogin'])){
                echo "Fel användarnamn eller lösenord, försök igen!";
            }
        ?>
            <form method="post" action="check.php">
            <p>User</p>
            <input name="user" type="text" />
            <p>Password</p>
            <input name="password" type="text" />
            <input name="logIn" type="submit" value="Log in" />
            </form>
        <?php
        }
        else{
            header("Location: admin.php");
        }
        ?>
    </body>
</html>

使用者

密码

这是我控制端的代码:

<?php
session_start();
?>
<?php
function db_escape($post){
    if(is_string($post)){
        if(get_magic_quotes_gpc()){
            $post = stripslashes($post);
        }
        return mysqli_real_escape_string($post);
    }
    foreach($post as $key => $val){
        $post[$key] = db_escape($val);
    }
    return $post;
}
if(isset($_POST["logIn"])){
    // Connect to db
    $dbConn = mysqli_connect("localhost","sabe0011","lösen","sabe0011");
    $dbConn->set_charset("utf8");

    // Check connection
    if(mysqli_connect_errno($dbConn)){
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $_POST = db_escape($_POST);
    $checkUserSQL = mysqli_query($dbConn, "SELECT * FROM Users WHERE User ='{$_POST['user']}' AND Password ='{$_POST['password']}'");

    if(mysqli_num_rows($checkUserSQL) == 0){
        header("Location: login.php?badlogin=");
        exit;
    }

    $_SESSION['sess_id'] = mysqli_store_result($checkUsersSQL, 0);
    $_SESSION['sess_user'] = $_POST['user'];
    header("Location: admin.php");
    exit;
}
?>


查询中的参数应按如下方式转义:

$checkUserSQL = mysqli_query($dbConn, "SELECT * FROM Users WHERE User =" . $_POST['user'] . " AND Password = " . $_POST['password']);

但是在安全性方面,你必须看到。

我现在试过了,但仍然不起作用=/你还有其他东西吗?你应该直接在数据库中的User=“youruser”和Password=“yourpassword”用户中尝试查询
SELECT*。
我试过了,我使用了正确的用户和密码。。遗憾的是,解决数据库查询似乎不是那么容易。如果在数据库上进行查询,您应该检查变量
$\u POST['username']
$\u POST['password']
没有任何名称拼写错误,在我在这里写事件之前,我检查了10次,您没有发现其他错误吗?代码中的某些东西,而不是事物的名称?