Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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登录mysqli问题_Php_Mysql_Mysqli - Fatal编程技术网

PHP登录mysqli问题

PHP登录mysqli问题,php,mysql,mysqli,Php,Mysql,Mysqli,我对PHP和MySQL有点陌生。当我使用测试用户测试此代码时,它总是允许使用凭据。所以它没有正确地检查数据是否在数据库中,但我似乎看不出有什么问题 编写此代码的正确方法是什么 //check connection to database if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } // Perform queries $sql = mysqli

我对PHP和MySQL有点陌生。当我使用测试用户测试此代码时,它总是允许使用凭据。所以它没有正确地检查数据是否在数据库中,但我似乎看不出有什么问题

编写此代码的正确方法是什么

//check connection to database
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// Perform queries
$sql = mysqli_query("SELECT * FROM tbl_users WHERE username='$name' AND password='$password'");
echo mysqli_num_rows($sql);

if(mysqli_num_rows($sql)==1){
    session_start();
    $data = mysqli_fetch_array($sql);
    $_SESSION['id'] = $data['id_user'];
    $_SESSION['username'] = $data['username'];
    $_SESSION['password'] = $data['password'];
    echo "Proses Login";
    print "<html><head><meta http-equiv='refresh' content='1; URL=admin/index.php'</meta></head></html>";
}
else {
    echo "Login Denied";
    print "<html><head><meta http-equiv='refresh' content='1; URL=admin/index2.php'</meta></head></html>";
}
然后将echo mysqli_num_rows$sql更改为以下行:

$result= mysqli_num_rows($con,$sql);
那么


你需要包括;您的sql连接文件,并在您的查询中提到您的MYSQLI连接:MYSQLI_query$con,您的查询在这里;旁注:这可能是一个安全问题,请从tbl_用户中选择*,其中用户名='$name'和密码='$password',从两个角度来看a您应该使用绑定参数b您可能正在存储明文密码这段代码充满了问题。请阅读有关SQL注入和PHP会话管理的内容。在线查找PHP登录表单示例。另外,我会抛出session\u start;在所有内容之前的页面顶部,没有真正的理由只将其包含在conditional.imo中,不必检查num_行,只需获取数据即可。如果是的话!清空然后处理它-否则报告错误。您唯一选中“受影响的行”的时间是更新、插入或删除。好吧-无论如何都要插入或删除。好吧…老兄,你做错了太多…:D对不起,没有冒犯,但是-1表示歉意。@UmairShahYousafzai这是库尔杜德。干杯@Sumari Kalyan:你不需要在mysqli_num_行中提到你的$con,只需要在你的mysqli_行中提到$con。我建议你看看这个链接,以便更好地理解:
$result= mysqli_num_rows($con,$sql);
if($result == 1){
Your code goes on.....
}