PDA

View Full Version : ساخت فرم login با widget



hosein123
چهارشنبه 01 بهمن 1393, 12:33 عصر
سلام
یه فرم با ویجت ساختم که به کاربر توی همه صفحات نشون بده وقتی هم کاربر وارد شد دیگه نشون نده توی بررسی صحت داده مشکل دارم
وقتی از خود فرم ورود برنامه استفاده میکنم درست انجام میشه ولی وقتی از طریق فرم خودمم که ساختم بررسی صحت داده ها انجام نمیشه




<?php $formlogin= new LoginForm;?>
<?php $this->widget('LoginFormWidget', array( 'form' => $formlogin )); ?>




class LoginFormWidget extends CWidget
{
/**
* @var CFormModel
*/
public $form;


public function run()
{
if (! $this->form instanceof CFormModel) {
throw new RuntimeException('No valid form available.');
}
$this->render('FormWidget', array('fform'=>$this->form));
}
}



<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>




<?php echo $form->textField($fform,'username'); ?>
<?php echo $form->error($fform,'username'); ?>
<?php echo $form->passwordField($fform,'password'); ?>
<?php echo $form->error($fform,'password'); ?>
<?php echo CHtml::link('ورود' ,array('site/login'));
?>
<?php $this->endWidget(); ?>
</div><!-- form -->





public function actionLogin()
{
$model=new LoginForm;
// if it is ajax validation request
//if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
//{
// echo CActiveForm::validate($model);
// Yii::app()->end();
//}
if(isset($_POST['LoginForm']))
{
$model->attributes=$_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if($model->validate() && $model->login())
$this->actionAdmin ();
// $this->redirect(Yii::app()->user->returnUrl);
}
else {
Yii::app()->user->setFlash('login','اطلاعات وارد شده نادرست میباشد لطفا دقت کنید');
$this->actionIndex ();
//$this->redirect(Yii::app()->user->returnUrl);
}
}