как передать ценное с редиректом? - PullRequest
0 голосов
/ 21 января 2012

У меня возникают проблемы при попытке передать ценное после того, как пользователь не прошел авторизацию.Я хотел бы передать $ error на контроллер приветствия, но не уверен, как это сделать.Пожалуйста помоги.Спасибо.

  private function _user_check()
            {
                 //after form validation, I pass username and password to the model
                    $this->load->model('user_query');
                    $result=$this->user_query->query($this->input->post('username'),$this->
                    input->post('password'));

                    if($result)
                {
                    redirect('main');

                }else{
                    // I am not sure how to pass this error message to my welcome controller
                    $data['error']='Please check your username or password';
                    redirect('welcome');
                }


        }

1 Ответ

2 голосов
/ 21 января 2012

В функции перенаправления вы не предоставляете полный URL-адрес, поэтому CI будет рассматривать параметр как URI-сегменты контроллера.

Зная это, вы можете получить что-то вроде:

redirect('welcome/error/error_user_pass');

и ваш "error_user_pass", которому передаются эталонные константы ошибок, определен в вашем проекте CI.

Может быть что-то подобное в вашем файле application / config / constants.php:

define('error_user_pass', 'incorrect user or password, please check yo self!');

Тогда в вашем «приветственном» контроллере есть что-то вроде этого:

class Welcome extends CI_Controller {
  public function error(){
    $errors = func_get_args();
    foreach( $errors as $error ){
      //echo error, or save it, or whatev
    }
  }
}
...