CakePhp需要帮助

时间:2013-07-08 06:04:34

标签: cakephp

我是cakephp的新手。为了安全更新,我要求用户输入他的出生日期。如果他输入了正确的出生日期,我想向他显示另一个包含他的安全问题的表格,然后是他的密码。

有两种不同的形式。一种是安全检查(出生日期验证),另一种是设置安全性(安全问题+密码)。

如果设置了安全性,则首先显示安全检查表并要求输入他的出生日期。如果出生日期正确,则应显示设置安全表,我无法做到。

我的个人资料页面代码显示了这两种形式;

<?php if($_GET['edit'] == 'set_security'){ ?>
        <?php if (empty($security_set)): ?>
        <?= $this->element('../users/set_security') ?>
        <?php else:?>
         <?= $this->element('../users/set_security_check') ?>
        <?php endif; ?>
        <?php } ?>

我在conntroller中编写的函数是,

function set_security_check()
{
   $user = $this->_authenticate_user();
   $id = $user['account_num'];
   $this->loadModel('UserProfile');
   $user_profile = $this->UserProfile->read(null, $id);
   $oldBirthdate = $user_profile['UserProfile']['birthday']; 
     if (!empty($this->data)) {
         $birthday = $this->data['UserProfile']['birthday'];
         if($oldBirthdate != $birthday)
         {
           $this->flashMessage(__('Your Birthday is Invalid. Please, try again.', true));

         }
         else
         {
          $this->flashMessage(__('Your Birthday Verified successfully', true), 'Sucmessage');
          $this->set('success', true);
         }

     }


}

当用户点击安全编辑按钮时,我发送查询字符串/个人资料?edit = set_security。

如果输入正确的出生日期,如何显示其他表格?

1 个答案:

答案 0 :(得分:1)

您可以在条件符合您的控制器中使用以下代码显示任何其他表单:

$this->render('/users/other_form');

如果我是正确的,那么您的代码应如下所示:

function set_security_check()
{
  $user = $this->_authenticate_user();
  $id = $user['account_num'];
  $this->loadModel('UserProfile');
  $user_profile = $this->UserProfile->read(null, $id);
  $oldBirthdate = $user_profile['UserProfile']['birthday']; 
  if (!empty($this->data)) {
     $birthday = $this->data['UserProfile']['birthday'];
     if($oldBirthdate != $birthday)
     {
       $this->flashMessage(__('Your Birthday is Invalid. Please, try again.', true));

     }
     else
     {
      $this->flashMessage(__('Your Birthday Verified successfully', true), 'Sucmessage');
      $this->set('success', true);
      $this->render('/controller_name/other_form');
     }
  }
}