$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内代码。但是无论原始密码正确与否,都可以修改,我想求一个方法,怎么样在这段代码上修改,实现先验证旧密码是否一致。
$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署名用户名或者密码错误
然后你要在修改密码的表达里添加一个输入框来获取原始密码
<input name="pwd" ></input>提交表单的时候验证就可以了啊$data['pwd']=$_post['pwd'];
$db=new Modle('Admin');
$map['passworld']=$data['pwd'];
if(!$data<>MD5($db->where($map)->select()))
{
//验证密码正确
}
$db=new Modle('Admin');
$map['passworld']=$data['pwd'];
$map['username']=$_SESSION['username'];
if(!$data<>MD5($db->where($map)->select()))
{
//验证密码正确
}