我正在查看CodeIgniter网站上的演示视频并浏览文档,但我不清楚我如何实现从一个页面到另一个页面的动态导航,具体取决于用户输入。
例如,我想要一个登录表单,该表单将转发到“成功页面”或“登录失败页面”。
我应该在哪里使用此功能?
答案 0 :(得分:3)
好的,对于此登录示例,您需要Form Helper,Form Validation Class和URL Helper。
class Login extends MY_controller {
function index()
{
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('form_validation');
// some simple rules
$this->form_validation->set_rules('username', 'Username', 'required|alpha_dash|max_length[30]');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run() == FALSE) {
// This will be the default when the hit this controller/action, or if they submit the form and it does not validate against the rules set above.
// Build your form here
// Send it to a login view or something
} else {
// The form has been submitted, and validated
// At this point you authenticate the user!!
if ($userIsAuthenticated) {
redirect('controller/action'); //anywhere you want them to go!
} else {
// not authenticated...in this case show the login view with "bad username/password" message
}
}
}
使用URL Helper中的redirect()函数将用户基于控制器中的逻辑发送到其他页面。
答案 1 :(得分:0)
通常在像Codeigniter这样的MVC框架中,预先形成动态导航的逻辑将驻留在控制器中。
示例:(在php风格的伪代码中)
<?php
class Blog extends Controller {
function login($username, $password)
{
if ($username and $password are correct) {
$this->load->view('success');
return;
}
$this->load->view('fail', $data);
}
}
?>
我实际上并不使用Codeigniter或PHP,但我拥有其他语言的MVC经验。另外由于我对语言/框架的经验不足,请不要使用上面的代码......这只是一个例子。 :d