爲什麼不做這項工作,我一直在努力尋找好幾天以下的答案。sql綁定值不發送任何東西
我試圖硬編碼的密碼到聲明和工作,但是當我使用該密碼的變量它什麼都沒有返回。
我也有回聲和打印到處看看有什麼變量是,他們是正確的,因爲在密碼確實被返回PW串密碼
<?php
include_once "db.php";
$username = $_POST['user'];
$password = $_POST['pass'];
echo "Username: ";
echo $username;
echo "<br>";
echo "Password: ";echo $password;
echo "<br>";
function GetPassword() {
$db = getDataBase();
$stmt = $db->prepare('SELECT username,password FROM userinfo WHERE username = :user AND password = :pass');
$stmt->bindParam(':user',$username, PDO::PARAM_STR);
$stmt->bindParam(':pass', $password, PDO::PARAM_STR);
$stmt->execute();
$results = $stmt->fetch(PDO::FETCH_ASSOC);
foreach($results as $row){
print_r($row);
}
return $results;
}
$realpw = GetPassword();
if($password == $realpw[0])
{
echo "Logged in";
json_encode($usernameInput);
echo $realpw[0];
}else
{
echo "invalid username or password";
}
?>
你真的應該使用PHP的[內置函數(http://jayblanchard.net/proper_password_hashing_with_PHP.html )來處理密碼安全性。如果您使用的PHP版本低於5.5,則可以使用'password_hash()'[兼容包](https://github.com/ircmaxell/password_compat)。 –
請參閱:http://php.net/manual/en/faq.passwords.php – lsklyut
如果你使用'PDO :: FETCH_ASSOC',這個>> if($ password == $ realpw [0]) '可能會讓你失望。 –