-3
我的問題與我的foreach ...你能幫我修復這個問題嗎?第33行警告:爲foreach()提供的無效參數() - > MySQL連接
if(isset($_POST["UserName"]) AND isset($_POST["Password"])){
$UserName = $_POST["UserName"];
$Password = $_POST["Password"];
$Password = hash("SHA256", $_POST["Password"]);
$sql = "SELECT UserName FROM Login WHERE UserName=$UserName";
foreach($db->query($sql) as $data) {
if ($_POST['UserName'] == $data["UserName"] && $_POST['Password'] == $data["Password"]){
header("Location: index.php");
}else{
$cnt = 1;
}
}
if(!empty($cnt)){
echo "Špatné jméno nebo heslo!";
}
if(!isset($UserName)){
$_SESSION["Time"] = 36000;
$_SESSION["LogedIn"] = 1;
}
}
}
}
}
1)你應該看看了準備好的語句/參數化查詢。 2)'$ UserName'需要引用,因爲它是一個字符串3)看看內置的PHP [密碼API](http://php.net/password)。 –
@JonStirling這是正確的答案。 –
4)你不要在你的SQL中請求'Password',這樣的條件永遠不會通過。 5)儘量不要混合和匹配'&&'和'AND'。 6)整理你的縮進。 –