用PHP和MYSQL数据库编写语句

用PHP和MYSQL数据库编写语句,php,mysql,session,prepared-statement,sha1,Php,Mysql,Session,Prepared Statement,Sha1,我目前正在做一个关于SQL注入的项目,我必须提供一个对策。我一直试图用准备好的声明作为我的对策。但目前我的电脑在尝试了几个小时后,我无法做到这一点。它一直在我的页面上给我一个纯白色的屏幕,它可以将它重定向到另一个页面或显示一条消息 这是密码 多洛金页: <?php session_start(); require('dbFunction.php'); $username = $_POST['form-username']; $password = SHA1($_POST['form-pas

我目前正在做一个关于SQL注入的项目,我必须提供一个对策。我一直试图用准备好的声明作为我的对策。但目前我的电脑在尝试了几个小时后,我无法做到这一点。它一直在我的页面上给我一个纯白色的屏幕,它可以将它重定向到另一个页面或显示一条消息

这是密码 多洛金页:

<?php
session_start();
require('dbFunction.php');
$username = $_POST['form-username'];
$password = SHA1($_POST['form-password']);
$msg = "";

$stmt = $link -> prepare("SELECT * FROM User WHERE Email = ? AND Password = ?");
$stmt -> bind_param('ss', $username, $password);
$stmt -> execute();

if($stmt -> get_result() -> num_rows > 0) {
$row = $stmt-> get_result() ->fetch_assoc();
$_SESSION['email'] = $row['Email'];
$_SESSION['userId'] = $row['UserId'];
$_SESSION['role'] = $row['role'];
$_SESSION['First_name'] = $row['First_name'];
header("location:index.php");
}
else{
$msg .= "Wrong user combination.";
}

$stmt -> close();
$link -> close();

include "navbar.php";
echo $msg;
echo error_get_last();

?>

以下是我的数据库连接代码:

<?php
$db_host = "localhost";
$db_username = "root";
$db_password = "P@$\$w0rd";
$db_name = "mydb";
$link = mysqli_connect($db_host,$db_username,$db_password,$db_name);

if(!$link){
die(mysqli_error($link));
}
尝试使用以下方法:

<?php
$db_host = "localhost";
$db_username = "root";
$db_password = "P@$\$w0rd";
$db_name = "mydb";
$link = new mysqli($db_host,$db_username,$db_password,$db_name);

if ($link->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

您的
else
状态中缺少
echo
prinf
语句。在$stmt中,您是否收到任何数据?我的意思是你得到loggedIn了吗?添加
echo$msg在你的
else
语句中。不,我没有登录。我想这意味着我没有收到任何数据@纳格什·卡塔纳承认了这一点,但我仍然面对着同样的白色屏幕。我不明白这个答案是如何获得如此多的赞成票的,伊姆霍。这里所做的一切,都是为了正确地处理连接上的错误,这应该在评论中提到。这并不能解决问题。说“尝试使用…”就是这样;注释。另外,这是
“P@$\$w0rd”如图所示,由于一些原因将失败。