【发布时间】:2014-02-26 10:09:35
【问题描述】:
我的本地主机上安装了 codeigniter
main.php 控制器是
class Main extends CI_Controller {
public function index()
{
$this -> login();
}
public function login()
{
$this->load->view('login');
}
public function login_validation() {
$this->load->library('form_validation');
$this->form_validation->set_rules('email','Email','required');
$this->form_validation->set_rules('password','Password','required|md5');
if($this->form_validation->run())
{
redirect('main/members');
}
else
{
$this->load->view('login');
}
}
}
登录正在工作页面即将到来,但在我填写用户名和密码后,应该带我到 login/main/login_validation 并从那里函数 login_validation() 应该重定向到 main/members 或显示登录页面.但是当我提交表单时,会发生找不到对象的错误。有人可以帮我吗?
形式是
form_open('main/login_validation');
【问题讨论】:
-
确切的错误是什么?
-
主/成员是否应该是密码保护区域?如果是这样,我看不出您如何使用您提供的代码检查任何内容。
-
您还应该从视图中发布整个表单代码,以便我们可以准确地看到您要使用的内容。
-
members()函数是否存在于main控制器中?看起来您应该通过验证并被重定向 -
一些旁注。我看到您正在使用 MD5 来准备密码。 MD5 已过时,如果安全性对您很重要,则不应再使用。如果您使用的是 PHP 5.5,请查看 password_hash,或者如果使用 5.3 - 5.4,请查看 compatibility library。非常好,而且非常容易使用。其次,查看加载“登录”视图的代码重复。
redirect()改为返回main/login。这也将阻止“您要再次提交吗?”错误。
标签: php forms codeigniter