用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1798|回复: 4
收起左侧

[版本 3.x] 关于url跳转中的名称显示

[复制链接]
发表于 2016-1-4 18:23:06 | 显示全部楼层 |阅读模式
我现在登录页面访问使用的控制器名为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
谢谢!

发表于 2016-1-4 18:30:06 | 显示全部楼层
本帖最后由 Closer 于 2016-1-4 18:38 编辑

內容不夠詳盡
沒辦法幫你

需要知道你的驗證機制
知道了之後用 if 就能解決了

一般有兩種模式 :
1. 同方法,不同視圖
2. 不同方法,重新導頁

這個是你要的 ?
CI 手冊 - URL 輔助函數

 
 楼主| 发表于 2016-1-5 09:56:48 | 显示全部楼层
Closer 发表于 2016-1-4 18:30
內容不夠詳盡
沒辦法幫你

是第一种模式,同方法login,进行不同视图的显示。
代码如下:
  1. public function login()//登录验证
  2.         {
  3.         $this->load->helper('form');
  4.     $this->load->library('form_validation');
  5.         $data['email'] = $this->input->post('email');
  6.         $data['pwd'] = $this->input->post('pwd');
  7.     $this->form_validation->set_rules('email', 'Email', 'required');
  8.         $this->form_validation->set_rules('pwd', 'Password', 'required');

  9.     if ($this->form_validation->run() === FALSE)
  10.     {
  11.         $this->load->helper('url');
  12.                 $this->load->view('templates/header');
  13.         $this->load->view('login');
  14.         $this->load->view('templates/footer');

  15.     }
  16.     else
  17.     {
  18.                 $this->load->helper('url');
  19.         $data['userid'] = $this->User_model->check_login($data);

  20.                 if (empty($data['userid']))
  21.                 {
  22.                         $data['type'] = '登录失败';
  23.                         $data['info'] = '账号或密码错误';
  24.                         $this->load->view('templates/header');
  25.                         $this->load->view('login_failure',$data);
  26.                         $this->load->view('templates/footer');
  27.                 }
  28.                 else{
  29.                         //设置session
  30.                         $sessiondata = array(
  31.                         'name'  => $data['userid']['user_name'],
  32.                         'email'     => $data['userid']['user_email'],
  33.                         'logged_in' => TRUE
  34.                         );
  35.                         $data['title']='index';
  36.                         $this->session->set_userdata($sessiondata);
  37.                         $this->load->view('templates/header_admin',$data);
  38.                         $this->load->view('Admin/index');
  39.                         $this->load->view('templates/footer_admin');
  40.                 }
  41.                
  42.         }
  43.         }
复制代码
发表于 2016-1-5 11:20:06 | 显示全部楼层
本帖最后由 Closer 于 2016-1-5 11:21 编辑
developerm 发表于 2016-1-5 09:56
是第一种模式,同方法login,进行不同视图的显示。
代码如下:

你要的方式,可能要選第二種
我註解的最後四行,改放到 Admin/index 裡面

PHP复制代码
 
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');
        }
       
}
 
复制代码

 楼主| 发表于 2016-1-6 15:41:19 | 显示全部楼层
Closer 发表于 2016-1-5 11:20
你要的方式,可能要選第二種
我註解的最後四行,改放到 Admin/index 裡面

非常感谢,已正常

本版积分规则