无法发布到数据库第一次单击(第二次单击工作)

时间:2012-07-18 10:49:54

标签: php sql

我有一个大问题。我有一个功能,你应该替换“密码”。但是当用户第一次点击提交时,在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>
    ";


}   

CONTROLLER:

if($PersonChangeView->TriedToChangePassword()){
        var_dump($PersonChangeView->GetPassword(),$Username);
        $kalle = $UserHandler->ChangePassword($PersonChangeView->GetPassword(),$Username);
        var_dump($kalle);

    }

HANDLER:

    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;


   }

1 个答案:

答案 0 :(得分:0)

您确定以正确的顺序执行脚本吗? 它似乎第一次工作,但没有使用新数据检索页面。只有在第二次它实际显示你第一次尝试的结果时。

您需要在修改处理程序和控制器中的值后调用View。