所以我很忙這個系統來改變你的密碼,當密碼被改變時,一個綠色的方框出現,並顯示'你的密碼已被改變'。注意:使用Foreach時數組到字符串的轉換
出現錯誤時,出現一個紅色框,顯示錯誤信息,例如: 「您當前的密碼不正確」或「您的新密碼與驗證密碼不一致」。
所以,當有一個post請求,我count
錯誤,如果有更多的則0,返回的錯誤是這樣的:
public function nieuwpw($username, $currentpass, $newpass, $newpassconf)
{
$this->errors[] = array();
$this->succes[] = array();
$query = $this->db->conn->prepare('SELECT pass FROM ht_users WHERE naam = ?');
$query->bind_param('s', $username);
$query->execute();
$query->bind_result($dbpass);
$query->store_result();
while ($query->fetch()) {
if (password_verify($currentpass, $dbpass))
{
if ($newpass === $newpassconf)
{
$newpasshash = password_hash($newpass, PASSWORD_DEFAULT);
$stmt = $this->db->conn->prepare('UPDATE ht_users SET pass = ? WHERE naam = ?');
$stmt->bind_param('ss', $newpasshash, $username);
$stmt->execute();
$stmt->close();
}
else
{
$this->errors[] = 'Whoops, je 2 nieuwe wachtwoorden zijn niet gelijk.';
}
}
else
{
$this->errors[] = 'Whoops, je huidige wachtwoord klopt niet!';
}
}
if (count($this->errors) > 0)
{
return $this->errors;
}
$this->succes[] = 'Je wachtwoord is met success gewijzigd!';
return $this->succes;
$query->close();
}
}
,這是我用它來修改密碼的功能。以下是我如何「迴響」的錯誤:
<?php //24
//25
if(isset($users->succes))//26
{//27
if (count($users->succes) > 0) //28
{//29
foreach ($users->succes as $succes) {//30
$content = '<div id="message_succes" style="background-color:#00B200; width:100%; height:30px;"><p style="color:#fff; font-family:Ubuntu; padding:5px;">' . $succes. '</p></div>';//31
echo $content;//32
//33
} //34
}//35
}//36
if(isset($users->errors))//37
{//38
if (count($users->errors) > 0) //39
{//40
foreach ($users->errors as $errors) {//41
$content = '<div id="message_succes" style="background-color:#ff0033; width:100%; height:30px;"><p style="color:#fff; font-family:Ubuntu; padding:5px;">' . $errors. '</p></div>';//42
echo $content;//43
//44
} //45
}//46
}//47
//48
?> //49
而且還在,甚至儘管我只能隨聲附和錯誤或成功的消息,如果有更多的則1,我得到這些錯誤:
Notice: Array to string conversion in C:\xampp\htdocs\pages\page16.php on line 31
Notice: Array to string conversion in C:\xampp\htdocs\pages\page16.php on line 42
在第二個代碼塊中,我對行進行了編號,以便您可以看到哪些行會拋出錯誤。
當做var_dump
,我得到下面的輸出:
array(2) { [0]=> array(0) { } [1]=> string(41) "Whoops, je huidige wachtwoord klopt niet!" }
而且,我覺得很奇怪的是,它顯示紅色的錯誤框兩次,連壽沒有任何成功消息,它也顯示了綠色框...
我希望這將被視爲一個完整的問題,有人可以幫助我解決這個問題。謝謝。