$data['id'] = $_POST['id'];
             $data['user'] = $_POST['user'];
             $data['pwd'] = $_POST['repwd'];
             $Admin= new Model('admin');
             
             if(!empty($data))
              {
                  if($Admin->save($data))
                  {
                     echo '<script type="text/javascript">';
                         echo "alert('修改密码成功!!');";
                         echo '</script>';
                         $this->redirect('Index/index');                   }
                  else
                  {
                     echo '<script type="text/javascript">';
                         echo "alert('修改密码失败!!');";
                         echo '</script>';
                         $this->redirect('Public/change');
                  }
              }
            else
              {
                    echo '<script type="text/javascript">';
                        echo "alert('表单数据错误!!!');";
                        echo '</script>';
                        $this->redirect('Public/change');
              }以上就是一段单纯的修改密码的thinkPHP内代码。但是无论原始密码正确与否,都可以修改,我想求一个方法,怎么样在这段代码上修改,实现先验证旧密码是否一致。

解决方案 »

  1.   

    $data['id'] = $_POST['id'];
    $data['user'] = $_POST['user'];
    $data['pwd'] = $_POST['repwd'];
    $Admin= new Model('admin');
    $num = $Admin->getUser();
    if(!$num){
     echo '<script type="text/javascript">';
     echo "alert('此用户不存在');";
     echo '</script>';
     $this->redirect('Index/index');
    }

    if(!($data))
    {
      if($Admin->save($data))
      {
     echo '<script type="text/javascript">';
     echo "alert('修改密码成功!!');";
     echo '</script>';
     $this->redirect('Index/index');  }
      else
      {
     echo '<script type="text/javascript">';
     echo "alert('修改密码失败!!');";
     echo '</script>';
     $this->redirect('Public/change');
      }
    }
    else
    {
    echo '<script type="text/javascript">';
    echo "alert('表单数据错误!!!');";
    echo '</script>';
    $this->redirect('Public/change');
    }//admin中的getUser方法要进行类似于select count(*) from user_table where 条件 的语句来返回规定条件的用户记录数,如果记录数为0署名用户名或者密码错误
      

  2.   

    你在用户登录的时候用SESSION记录下用户名 或者ID 
    然后你要在修改密码的表达里添加一个输入框来获取原始密码
    <input name="pwd" ></input>提交表单的时候验证就可以了啊$data['pwd']=$_post['pwd'];
    $db=new Modle('Admin');
    $map['passworld']=$data['pwd'];
    if(!$data<>MD5($db->where($map)->select()))
    {
      //验证密码正确
    }
      

  3.   

    写掉了一点 不好意思$data['pwd']=$_post['pwd'];
    $db=new Modle('Admin');
    $map['passworld']=$data['pwd'];
    $map['username']=$_SESSION['username'];
    if(!$data<>MD5($db->where($map)->select()))
    {
      //验证密码正确
    }