我有一个简单的登录表单,该表单运行jQuery脚本,该脚本将请求发送到PHP(ajax),如果登录成功,则返回true。
我的两个问题将基于安全性。
我正在像这样通过ajax发送数据:
$.ajax({
type: "POST",
url: "../Php/CheckUserLogin.php",
data: {"userName" : userName, "password" : password},
success: function(result){
switch(result)
{
case "0":
document.getElementById('errorMessage').innerHTML = "Uspesno ste se ulogovali!";
document.getElementById('errorMessage').style.color = "green";
break;
case "NEPOSTOJECI_KORISNIK":
document.getElementById('errorMessage').innerHTML = "Korisnik ne posotoji!";
document.getElementById('errorMessage').style.color = "red";
break;
case "-1":
case "1":
document.getElementById('errorMessage').innerHTML = "Pogresna sifra!";
document.getElementById('errorMessage').style.color = "red";
break;
default:
document.getElementById('errorMessage').innerHTML = "Greska!";
document.getElementById('errorMessage').style.color = "red";
break;
}
}
});
input filtering
吗(我正在检查字符串是否为空)?在PHP中,我正在创建这样的sql语句:$sql = "SELECT SIFRA FROM KORISNIK WHERE IME = '$input_Username'";
parameters
中的sql - c#
?答案 0 :(得分:0)
关于客户端验证,由您决定要验证什么。
在后端方面。除非您不在乎数据库中的数据,否则绝对不要使用该代码。
如果使用PDO或mysqli,则应使用准备好的语句,以便可以绑定参数。
$sql = "SELECT SIFRA FROM KORISNIK WHERE IME = :input_username";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':input_username', $input_username);
答案 1 :(得分:-5)
您应该在字符串中使用{$ input_Username},因为它更易读。 可以发送ajax请求,您应该检查一下字符串。
$sql = "SELECT SIFRA FROM KORISNIK WHERE IME = {$input_Username}";