2015-10-20 93 views
1

在I remove index.php之後,我在codeigniter中啓用查詢字符串。但是我有一些重定向鏈接的問題。詳細信息,我有登錄表單(登錄/索引),登錄成功時重定向到「歡迎/索引」並保存會話中的電子郵件。在codeigniter中查詢字符串

但是當登錄成功時只加載視圖「welcome/index」和錯誤的鏈接,現在鏈接是: 「?login/index」而session不保存。請幫幫我 。

這裏是我的代碼

的login.php(控制器)

if($this->input->post('email') != '' && $this->input->post('password') != ''){ 
     if ($this->user->CheckLogin($this->input->post('email'),$this->input->post('password')) == true) 
     { 
      $this->load->library('session'); 
      $this->session->set_flashdata('email', $this->input->post('email')); 
      redirect('welcome/index', 'refresh'); 
     } 
     else 
     { 
      $data['error_message'] = '* Email or Password is incorrect'; 
      $this->load->view('login',$data); 
     } 
    }else{ 
      $this->load->view('login',$data); 
    } 

的welcome.php(控制器)

class Welcome extends CI_Controller { 

public function index() 
    { 
     $this->load->model('user'); 
     $this->load->helper('url'); 
     $this->load->library('session'); 

     $data['email'] = $this->session->flashdata('email'); 
     $this->load->view('welcome_message',$data); 
    } 
} 

welcome_message.php(查看)

<?php 
    // Cant print email 
    echo $email; 
?> 

的.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

在你的config.php你做'$配置[ 'uri_protocol'] = 'QUERY_STRING';' – user4419336

+0

感謝。它正在工作,但我所有的鏈接都有「?」性格。例如:?welcome/index,?login/index。爲什麼會這樣:( – jonny

+0

可能是由於你的htaccess文件在主目錄中,如果有的話) – user4419336

回答

0

如果啓用查詢字符串然後更改重定向這樣

redirect('c=welcome &m=index', 'refresh');

此外,它可能需要寫index.php?或僅?之前c

或者如果config.php文件,那麼你需要改變c and m

$配置變化configuation [ 'enable_query_strings'] = FALSE;
$ config ['controller_trigger'] ='c';
$ config ['function_trigger'] ='m';

更多信息http://www.codeigniter.com/user_guide/general/urls.html#enabling-query-strings

+0

但我使用GET查詢沒有**啓用查詢字符串**像這樣'htttp://example.com/controller/method/12?filter = no&name = someone' –