大きな問題があります。「パスワード」を置き換える機能があります。しかし、ユーザーが初めて送信をクリックすると、var_dump に Hands = "false" が残ります。同じプロセスをもう一度実行すると、うまくいきます!同様の問題がありましたか?
見る:
public function View(){
$NavigationView = New NavigationView();
return "
<div class='change'>
<form name='login' id='RegisterUserForm' method='Post' action='" . $NavigationView -> GetPersonIndex() . "'>
<p>
<label class='label' for='password'><h2 id='changelabel' >New Password</h2></label>
</p>
<p>
<input type='password' size='20' name='$this->pass' id='name' class='text'/>
</p>
<input type='hidden' id='submithidden' value='true' name='" . NavigationView::Personindex . "'/>
<input type='submit' name='submit' id='submit' value='Change Password'/>
</form>
</div>
";
}
コントローラー:
if($PersonChangeView->TriedToChangePassword()){
var_dump($PersonChangeView->GetPassword(),$Username);
$kalle = $UserHandler->ChangePassword($PersonChangeView->GetPassword(),$Username);
var_dump($kalle);
}
ハンドラ:
public function ChangePassword($password,$username){
var_dump($password,$username);
$DBConnection = new DBConnection();
$DBConnection -> Connect();
$sql= "UPDATE user SET m_password=? where m_username=?";
$stmt = $DBConnection -> prepare($sql);
$stmt -> bind_param("ss",$password, $username);
if ($stmt === FALSE) {
//echoBr("prepare of '$sql' failed " . $DBConnection -> error);
return false;
}
$stmt -> execute();
// ger resultet.
$result = $stmt -> get_result();
$stmt -> close();
return false;
}