代碼將顯示返回的值,如果它大於1,它將返回「是」。但是我在$ check的WHERE子句中遇到了問題。當我把它拿出來的代碼工作得很好,但是當我添加它時,頁面返回不正確的值。任何想法有什麼不對?SQL/PHP「WHERE」沒有返回正確的值?
<?php
$con = mysqli_connect("127.0.0.1","root","","lian");
$u= $_GET['username'];
$pw = $_GET['password'];
$check = "SELECT username,password FROM users WHERE username='$u' AND password='$pw'";
$login = mysqli_query($con,$check) or die(mysqli_error($con));
$num_rows = mysqli_num_rows($login);
echo "$num_rows \n";
if (mysqli_num_rows($login) == 1) {
$row = mysqli_fetch_assoc($login);
echo 'Yes';
exit;
}
else {
echo 'No';
exit;
}
您的代碼易受SQL注入攻擊。您需要轉義任何和所有用戶輸入。 – j883376 2013-05-05 22:40:04
當你回顯$ _GET中包含的變量時,你會看到什麼? – 2013-05-05 22:42:40
數據庫上的明文密碼?!?用鹽對它進行散列 – 2013-05-05 22:43:05