【发布时间】:2018-05-11 03:55:08
【问题描述】:
我已经与 codeigniter 路线斗争了好几天。它严重阻碍了我的工作效率。因此,非常感谢您提供任何帮助。
我有一个登录表单:
- 如果登录错误重定向 -> 页面失败
- 如果登录正确重定向 -> 欢迎
我正在使用 codeigniter 路由调试器脚本来检查和调试我的路由。
当我检查我的路由日志时,会显示以下内容,以确保登录尝试正确。
DEBUG - 2018-05-11 03:40:10 --> 客户端发送:用户/欢迎
DEBUG - 2018-05-11 03:40:10 --> 找到路由:users/welcome --> users/welcome
DEBUG - 2018-05-11 03:40:10 --> 重定向到:users/welcome -->users/welcome
users/welcome DEBUG - 2018-05-11 03:40:10 --> 全球 POST、GET 和
COOKIE 数据已清理 ERROR - 2018-05-11 03:40:10 --> 404 Page Not
如您所见,找到了路由,然后它重定向到路由,但不知何故导致找不到 404 页面。
但是我的视图中显然有一个欢迎页面,如下图所示:
我剥离了一切,并试图让我的路线尽可能简单。 config/routes.php 内容如下。
$route['users']= 'users';
$route['users/index'] = 'users/index';
$route['users/login'] ='users/login';
$route['users/welcome'] ='users/welcome';
$route['users/failed'] ='users/failed';
$route['(:any)'] = 'pages/index/$1';
$route['default_controller'] = 'pages/index';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
页面 URL 如下:http://mysite/users/welcome = 404 错误,如上所述。
任何帮助表示赞赏。
附加信息:控制器用户()
公共函数登录(){ $data['title'] = '登录';
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if($this->form_validation->run() === FALSE){
$this->load->view('templates/header');
$this->load->view('users/login', $data);
$this->load->view('templates/footer');
} else {
// Get username
echo $username = $this->input->post('username');
// disabled encryption for testing
echo $password = $this->input->post('password');
// Login user
$user_id = $this->users_model->login($username, $password);
if($user_id){
// Create session
$user_data = array(
'userID' => $user_id,
'username' => $username,
'logged_in' => true
);
$this->session->set_userdata($user_data);
// Set message
$this->session->set_flashdata('user_loggedin', 'You are now logged in');
redirect('users/welcome');
} else {
// Set message
$this->session->set_flashdata('login_failed', 'Login is invalid');
redirect('users/failed');
}
}
【问题讨论】:
-
你检查你的
$user_id变量了吗?var_dump($user_id) -
@SalimIbrogimov 好的,给我一分钟的时间。并报告回来。但这与路线有什么关系呢?谢谢
-
调用视图的用户类中的“欢迎”和“失败”方法在哪里?
-
@SalimIbrogimov 我添加了 var_dump($user_id) 输入了正确的凭据并登录。但我随后被重定向到:
http://mysite/users/welcome然后是 404 页面,vardump没有任何显示。但是我在控制器中取出重定向以成功登录。$_user_id在登录页面上正确显示(因为我删除了重定向)我也做了$var_dump($_SESSION)并且所有信息都正确显示。希望这是有道理的。感谢您的帮助 -
我正在添加答案,请稍等。
标签: php codeigniter