-1

我在模块中有一个登录表单,它使用一个 chtml 文本字段,它使用 jQuery 进行客户端验证,但如果用户不存在并输入两个字段,它会重定向到登录 url,并且不会在模式弹出窗口中显示错误。

我在主布局中通过 ajax 调用模块登录。可以在任何页面,完美调用登录。

但如果登录凭据错误,唯一不起作用的是服务器端验证。它重定向到用户/登录页面,并且不在模式窗口中显示服务器端验证错误。

   <?php echo CHtml::beginForm(); ?>

<div class="row1">

    <?php echo CHtml::activeTextField($model,'username',array('placeholder'=>'Username or Email','class'=>'pclas')) ?>
</div>

<div class="row1">

    <?php echo CHtml::activePasswordField($model,'password',array('placeholder'=>'Password','class'=>'pclas')) ?>
</div>


<div class="remsub">
<div class="rememberMe1">
    <?php echo CHtml::activeCheckBox($model,'rememberMe',array('class'=>"btn1"));echo CHtml::activeLabelEx($model,'rememberMe',array('class'=>"btn1"));  ?>
    <?php ?>
</div>

<div class="submit1">
    <?php echo CHtml::submitButton(UserModule::t("Login"),array('class'=>"btn")); ?>
</div>
 <div class="regpwd">
  <?php echo CHtml::link(UserModule::t("Register"),Yii::app()->getModule('user')->registrationUrl,array('class'=>'pclas1')); ?> | <?php echo CHtml::link(UserModule::t("Lost Password?"),Yii::app()->getModule('user')->recoveryUrl,array('class'=>'pclas1')); ?>

 < /div>    
</div>

  <?php echo CHtml::endForm(); ?>

    <?php
     $form = new CForm(array(
'elements'=>array(
    'username'=>array(
        'type'=>'text',
        'maxlength'=>32,
    ),
    'password'=>array(
        'type'=>'password',
        'maxlength'=>32,
    ),
    'rememberMe'=>array(
        'type'=>'checkbox',
    )
),

'buttons'=>array(
    'login'=>array(
        'type'=>'submit',
        'label'=>'Login',
    ),
),
   ), $model);


  ?>

并且它是登录表格不是 注册表单是我可能需要的,或者任何其他解决方案将不胜感激

4

1 回答 1

0

是的,请添加您的代码,以便我们知道您在做什么。

一些可以帮助的事情:

  • 也许使用表单的用户不允许访问进行验证的控制器/操作?这将导致 Yii 将他/她重定向到登录页面。尝试查看进行验证的控制器/操作的权限。

  • 确保您的表单已启用 ajax 验证:

    <?php $form = $this->beginWidget('CActiveForm', array(
        'id'=>'user-form',
        'enableAjaxValidation'=>true, <----------
        'enableClientValidation'=>true, 
        'focus'=>array($model,'firstName'),
    )); ?>
    
于 2014-05-01T23:18:44.073 回答