я использую 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.
Есть идеи, что я могу попробовать дальше? Спасибо
Задача ещё не решена.
Других решений пока нет …