我mysql_real_escape_string()
用来逃避登录1' or '1' = '1
,但是,当我逃避它时,我无法登录 - 它会触发“请输入有效的用户名和密码”的错误。如果我删除该函数并仅使用trim()
它可以正常工作,但它显然不会逃脱 SQL 注入。
//$name = trim($_POST['adminname']);
//$pswd = trim($_POST['pswd']);
$name = mysql_real_escape_string($_POST['adminname']);
$pswd = mysql_real_escape_string($_POST['pswd']);
$sql_re=$db->query("SELECT admin_id,name FROM admin WHERE name ='".$name."' AND password = '".$pswd."'");
//$db->result(); // loads results as list of arrays
if($db->row() > 0){
$_SESSION['adminName'] = "admin";
echo '<script>window.location = "index.php";</script>';
}else{
$msg = "Please enter a valid username and password!";
} // loads one result row as associative array
我也试过在这样的查询过程中转义,但仍然不起作用。
SELECT admin_id,name FROM admin WHERE name ='".mysql_real_escape_string($name)."' AND password = '".mysql_real_escape_string($pswd)."'"
我已经尝试过mysqli_real_escape_string()
,但这会导致数据库错误,所以我使用的是 MySQL。
知道我接下来可以尝试什么吗?谢谢