2015-10-20 1 views
1

После I remove index.php, я включаю строку запроса в codeigniter. Но у меня проблемы с перенаправлением. Подробно, у меня есть форма входа в систему (имя пользователя/индекс) и при успешном успешном переходе на «приветствовать/индексировать» и сохранять электронную почту в сеансе.Строка запроса в codeigniter

Но когда успех Войти только вид нагрузки «приветствия/индекс» и неправильно ссылку, теперь ссылка: «Логин/индекс» и сессия не спасают. Пожалуйста, помогите мне .

Вот мой код

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

Если включить Query Strings затем измените редирект как этот

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

Кроме того, он может требуется написать index.php? или только ? перед тем c

Или, если изменения в Кoнфигурировании в config.php, то вам необходимо изменить c and m как

$ конфиг [ '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-запрос без ** enable Query Strings **, как этот' htttp: //example.com/controller/method/12? filter = no & name = someone' –