我是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。
如果输入正确的出生日期,如何显示其他表格?
答案 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');
}
}
}