关于url跳转中的名称显示
我现在登录页面访问使用的控制器名为Welcome,所有和用户相关的使用一个控制器User,User其中有一个login方法,调用模型User_model进行验证。现在的问题是:
登录页面的URL是http://127.0.0.1/Welcome/login, 不管登录失败还是成功,URL显示的是http://127.0.0.1/index.php/User/login
我是在User中的login方法中设置视图显示,失败如下:
$this->load->view('templates/header');
$this->load->view('login_failure',$data);
$this->load->view('templates/footer');
成功则显示另一个控制器对应的视图
$this->load->view('templates/header_admin',$data);
$this->load->view('Admin/index');
$this->load->view('templates/footer_admin');
我如何让URL显示为:失败:http://127.0.0.1/Welcome/login_failure,成功则为:http://127.0.0.1/Admin/index
谢谢!
本帖最后由 Closer 于 2016-1-4 18:38 编辑
內容不夠詳盡
沒辦法幫你
需要知道你的驗證機制
知道了之後用 if 就能解決了
一般有兩種模式 :
1. 同方法,不同視圖
2. 不同方法,重新導頁
static/image/hrline/line3.png
這個是你要的 ?
CI 手冊 - URL 輔助函數
Closer 发表于 2016-1-4 18:30
內容不夠詳盡
沒辦法幫你
是第一种模式,同方法login,进行不同视图的显示。
代码如下:public function login()//登录验证
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['email'] = $this->input->post('email');
$data['pwd'] = $this->input->post('pwd');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('pwd', 'Password', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->helper('url');
$this->load->view('templates/header');
$this->load->view('login');
$this->load->view('templates/footer');
}
else
{
$this->load->helper('url');
$data['userid'] = $this->User_model->check_login($data);
if (empty($data['userid']))
{
$data['type'] = '登录失败';
$data['info'] = '账号或密码错误';
$this->load->view('templates/header');
$this->load->view('login_failure',$data);
$this->load->view('templates/footer');
}
else{
//设置session
$sessiondata = array(
'name'=> $data['userid']['user_name'],
'email' => $data['userid']['user_email'],
'logged_in' => TRUE
);
$data['title']='index';
$this->session->set_userdata($sessiondata);
$this->load->view('templates/header_admin',$data);
$this->load->view('Admin/index');
$this->load->view('templates/footer_admin');
}
}
} 本帖最后由 Closer 于 2016-1-5 11:21 编辑
developerm 发表于 2016-1-5 09:56
是第一种模式,同方法login,进行不同视图的显示。
代码如下:
你要的方式,可能要選第二種
我註解的最後四行,改放到 Admin/index 裡面
public function login() { //登录验证
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('pwd', 'Password', 'required');
$data['email'] = $this->input->post('email');
$data['pwd'] = $this->input->post('pwd');
$data['userid'] = $this->User_model->check_login($data);
if ($this->form_validation->run() === FALSE || empty($data['userid'])) {
$data2['type'] = '登录失败';
$data2['info'] = '账号或密码错误';
$this->load->view('templates/header');
$this->load->view('login', $data2);
$this->load->view('templates/footer');
} else {
//设置session
$sessiondata = array(
'name' => $data['userid']['user_name'],
'email' => $data['userid']['user_email'],
'logged_in' => TRUE
);
$this->session->set_userdata($sessiondata);
// 重新導頁
redirect('Admin'); // 預設讀取 index 方法
// $data['title']='index';
// $this->load->view('templates/header_admin', $data);
// $this->load->view('Admin/index');
// $this->load->view('templates/footer_admin');
}
}
Closer 发表于 2016-1-5 11:20
你要的方式,可能要選第二種
我註解的最後四行,改放到 Admin/index 裡面
非常感谢,已正常
页:
[1]