在yii应用程序中更改密码页面的麻烦

时间:2013-08-05 14:29:56

标签: php yii

我希望在特殊页面更改密码。

当我点击“更改密码”时,我必须进入密码视图。

这是我需要去的更新视图的代码

<?php
/* @var $this UserController */
/* @var $model User */

$this->menu=array(
    array('label'=>'User List', 'url'=>array('index')),
    array('label'=>'Create User', 'url'=>array('create')),
    array('label'=>'View User', 'url'=>array('view', 'id'=>$model->id)),
    array('label'=>'Change password', 'url'=>array('password', 'id'=>$model->id)),
);
?>

<h1>Change user <?php echo $model->id; ?></h1>

<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>

这是我的password.php视图文件

<?php
$this->menu=array(
    array('label'=>'List user', 'url'=>array('index')),
    array('label'=>'Create user', 'url'=>array('create')),
    array('label'=>'View user', 'url'=>array('view', 'id'=>$model->id)),
    array('label'=>'Change user', 'url'=>array('update', 'id'=>$model->id)),
);
?>

<?php
CHtml::beginForm();
CHtml::textField('password');
CHtml::submitButton('Change');
CHtml::endForm();
?>

UserController具有action actionPassword()

public function actionPassword($id) {
        $model=$this->loadModel($id);
        $model->password=$_POST['password'];
        if($model->save())
            $this->redirect(array('view','id'=>$model->id));
        $this->render('password');
}

在示例中我使用此代码工作正常。但我有错误 http://pastebin.com/XbCwfhRT

所有文件和文件夹都具有root权限。我做错了什么?一个月前,相同的代码工作正常,我不明白出错的地方。

1 个答案:

答案 0 :(得分:0)

您忘记检查$_POST是否已设置,以便在加载操作时(提交前)$_POST['password']不存在。

if(isset($_POST['password'])) {
    $model->password=$_POST['password'];
    if($model->save())
        $this->redirect(array('view','id'=>$model->id));
}