Sveiki!
Man tāds dīvains, varbut no skata stulbs jautājums - Vai mysql_num_rows() aizsargaa pilniiba no sql injekcijaam.
Esmu ieveerojis, ka pret sql injekcijaam ir speciaali paredzeetas funkcijas ,piemeram, mysql_real_escape_string(), stripslashes() un vēl citas.
Man ir login forma. Es speciali aizkomentēju visas pret sql injekcijām aizsargājošās funkcijas. Lūk daļa no koda.
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
Mēģinu jebkuru sql injekciju ievadīt, kura ļautu ielogoties, bet izlec šis errors:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\host\DB\Login\checklogin.php on line 23
Es tā sapratu, ka errors izlec tādēļ, ka manis radītais querijs izvēlas vairākus rowus.
Varbūt kāds var ieteikt kādu sql injekciju, kas apietu šo sistēmu? :D