1

我有一个控制器身份验证,有 2 种方法登录和注册。

它运行良好。

但是,我需要另一个名为login_and_register的函数,该函数将有一个 if 条件来确定将执行哪个部分。如果登录部分(基本上来自登录方法的代码)或注册部分(来自注册方法的代码)。

if 条件应该检查​​单击了哪个提交按钮。

但问题就在这里。

我需要两个表单(登录和注册)的 form_open 保持这样:

<?php echo form_open('auth/login_and_register'); ?>

这不能更改为例如 auth/login_and_register_log 或 auth/login_and_register_reg 或 auth/login_and_register/log 或 auth/login_and_register/reg 等。

登录和注册表单在同一个视图中,按下提交后,auth 控制器中的这个函数 login_and_register 被执行。

我在想我可以根据提交值的名称来制作 if 条件,因为对于登录表单,它称为submitlog,对于注册表单,它称为submitreg

所以,也许是这样的:

if( isset($this->form_validation->set_value('submitlog')) ) {
   //code for login part
}
elseif ( isset($this->form_validation->set_value('submitreg')) ) {
   //code for registration part
}
else {
   //code for redirect to homepage
}

但它不起作用。知道为什么吗?

4

2 回答 2

2

查询提交按钮名称是个好主意。这是一段有效的代码:

if ($this->input->post("submitlog") !== false) {
    //code for login part
} elseif ($this->input->post("submitreg") !== false) {
    //code for registration part
} else {
    //code for redirect
}
于 2013-01-04T11:35:42.647 回答
1

取而代之的是,您可以在两个表单中使用相应表单名称的值保留一个隐藏字段。在控制器中,您可以检查此字段值并确定提交的表单。然后你可以重定向到所需的功能..

于 2013-01-04T09:13:01.987 回答