Php 在网页上显示SQL查询结果

Php 在网页上显示SQL查询结果,php,security,mysqli,sql-injection,Php,Security,Mysqli,Sql Injection,我环顾四周寻找答案,但不幸的是,在我的情况下没有任何效果 编辑:与其他答案不同,因为要求代码故意易受攻击,忽略最佳实践 我正在网页上开发一个功能,它基本上允许用户使用表单查找并查看数据库中的表中是否有用户名。如果是,查询的结果应该回送或显示给他们。这听起来可能有点奇怪,但讨论中的网页是为了教授web漏洞,本练习的重点是让学生使用SQL注入来获取该用户名的密码 这里是PHP <?php $error=''; // if(isset($_POST['submit'])){ if(emp

我环顾四周寻找答案,但不幸的是,在我的情况下没有任何效果

编辑:与其他答案不同,因为要求代码故意易受攻击,忽略最佳实践

我正在网页上开发一个功能,它基本上允许用户使用表单查找并查看数据库中的表中是否有用户名。如果是,查询的结果应该回送或显示给他们。这听起来可能有点奇怪,但讨论中的网页是为了教授web漏洞,本练习的重点是让学生使用SQL注入来获取该用户名的密码

这里是PHP

<?php
$error=''; //
if(isset($_POST['submit'])){
    if(empty($_POST['user'])){
        $error = "Please enter a username.";
    }
    else
    {
        //Define $user
        $user=$_POST['user'];
        //Establish Connection with server by passing server_name, user_id 
and pass as a parameter
        $sqli = mysqli_connect("localhost", "root", "");
        //Select Database
        $db = mysqli_select_db($sqli, "#");
        $query = mysqli_query($sqli, "SELECT username FROM sqlusers WHERE username 
='$user'");
        $results = mysqli_query($query);
        $rows = mysqli_num_rows($query);
        if($rows == 1){
            echo $query;
        }
        else
            {
            $error = "Username is not in the database";
        }
        mysqli_close($sqli); //Close Conenction
        }
    }
?>

请按如下方式更改查询

$query = mysqli_query($sqli, "SELECT username FROM sqlusers WHERE username 
='".$user."'");
您在PHP中将字符串附加到变量时犯了一个错误。
请尝试上面的代码,它将对您有所帮助。

这是您的家庭作业吗?不是,我正在为一年级安全专业的学生开发一个项目,但正如我所说的,我对web开发一点也不精通。好的,相信您的话,是的,您的代码是完全开放的,您希望他们进行注入。更改查询将手动完成。您不需要回显查询,只需回显用户名行,例如:$query[“uName”];当查询被更改时输入密码。使用
标题(位置:bla.php?uname=“.$\u POST[“uname”]);
将所选数据发送回登录页面,然后在登录页面上回显它。请停止使用mysqli。搜索PDO并读取差异。最好养成良好习惯,因为这只是尝试教授MySQL注入,所以sqli将适用于此。
$query = mysqli_query($sqli, "SELECT username FROM sqlusers WHERE username 
='".$user."'");