这是我routes.php
文件的一部分
$route['admin/login'] = 'admin_login';
$route['admin/login/(:any)'] = 'admin_login/$1';
$route['admin/logout'] = 'admin_login/logout';
$route['admin'] = 'admin_login';
$route['admin/(:any)'] = 'admin_login/$1';
我validate_login()
在Admin_Login
控制器中的方法的一部分
if(! $this->form_validation->run()) {
$messages = validation_errors('<div class="alert error">',"</div>\r\n");
$this->session->set_flashdata('messages', $messages);
$this->session->keep_flashdata('messages');
/* will redirect to admin_login/index */
redirect('admin/login');
return FALSE;
}
控制器中index()
方法的一部分Admin_Login
$data = array();
$data['messages'] = $this->session->flashdata('messages');
$this->load->view('admin/login', $data, true);
`admin/login.php' 视图中的一个部分
<div class="message_box">
<?php echo $messages; ?>
</div>
对象中userdata
的$this->session
[userdata] => Array
(
[session_id] => 1da231df3eb2ef90257b173bf34aa308
[ip_address] => 192.168.1.135
[user_agent] => Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
[last_activity] => 1370231465
[user_data] =>
[flash:new:messages] =>
The Username field is required.
The Password field is required.
)
设想:
当我登录时,用户输入将被传递给admin/validate_login
. 我故意使用空凭据登录。视图文件中会出现验证错误。但它没有显示。我有一种预感,这些路线导致了这个错误。对此有什么帮助吗?
解决了:
会话类没有正确转义 flashdata。使用 base64 编码和解码以正确显示数据。