2013-06-06 2 views
0

CodeIgniter의 flashdata를 사용하여 다음 요청에 대한 내 captcha 단어를 저장하고 있습니다. 로컬 사이트에서는 제대로 작동하지만 서버에서는 제대로 작동하지 않습니다. 두 코드간에 차이점은 없습니다.CodeIgniter Flashdata가 서버에서 작동하지 않습니다.

flashdata 기능이 아파치/PHP를위한 추가 플러그인 또는 구성을 필요로하는지 궁금합니다.

if (strcasecmp($this->input->post('captchaWord'), $this->session->flashdata('captchaWord')) != 0) 

모든 아이디어 : 나는 그것을 검색하는 방법

$this->session->set_flashdata('captchaWord', $cap['word']); 

이있다 : 여기

내가 데이터를 설정하는 방법은?

+0

flashdata 세션 라이브러리를 사용하여 필요 - 데이터베이스 또는 쿠키에 저장하거나 (사용자 설정의 값을 기준으로 파일). 이 일을하기 위해 아파치 나 PHP가 누락되어서는 안됩니다. 데이터베이스에 쓰는 데 문제가 있거나 쿠키에 데이터를 만드는 보안 문제가있을 수 있습니다. – swatkins

답변

1

그렇지 않습니다. 이상한 점이 서버에서 계속되고 있습니다.

데이터베이스 세션을 사용중인 경우 데이터베이스 연결이 이루어지고 있는지 확인하십시오.

리디렉션 대상이 실제로 동일한 서버인지 확인하십시오.

플래시 데이터를 올바르게 사용하고 있는지 확인하십시오. (우편 번호?)

세션 변수가 전혀 작동하는지 확인하십시오.

업데이트 :

// Again, be sure that 'session' is autoloaded in config.php 
class Test_Controller { 
    public function page1() 
    { 
     $this->session->set_flashdata('test', 'HELLO WORLD'); 
     redirect('test/page2'); 
    } 
    public function page2() 
    { 
     echo $this->session->flashdata('test'); 
    } 
} 

이 컨트롤러를 추가하고 http://yourserver.com/index.php/test/page1

그것은 페이지 2 및 디스플레이 'HELLO WORLD'로 리디렉션해야 방문하십시오.

그렇다면 코드에 문제가있는 것입니다. 그렇지 않으면 OS가있는 가상 컴퓨터를로드하고 웹 서버의 새 복사본을 설치하고 다시 시도하는 것이 좋습니다.

+0

데이터베이스가 없으며 보안 세션이 없습니다. 다른 세션 변수가 작동 중입니다. 게시물을 코드로 업데이트했습니다. – emjay

+0

내 대답 업데이트 –

0

Codeigniter가 컨트롤러를 두 번 호출하는지 확인하십시오.이 경우 첫 번째 호출과 두 번째 호출 사이에서 flashdata가 지워집니다 (대답은 Codeigniter flash data not working in certain browsers 참조).

컨트롤러가 두 번 호출 될 수있는 코드 서명자 사례가 있습니다. 예를 들어, Codeigniter를 기반으로하는 GoCart 장바구니 패키지에는 http를 https로 변경하고 새 URL로 리디렉션하여 SSL을 적용하는 도우미 기능이 있습니다. 함수가 생성자에서 사용되면 컨트롤러는 SSL을 사용하지 않고 한 번, 두 번 호출합니다. 모든 플래시 데이터는 두 번째 호출과 함께 손실됩니다.

다른 유사한 질문 (CodeIgniter: setting flash data not working)을 사용하면 $ CI-> session-> keep_flashdata()를 사용하여 추가 요청에서 플래시 데이터를 보존 할 수 있습니다.

이 페이지의 대답은 문제와 해결 방법 설명의 좋은 일을 수행합니다 CodeIgniter "flashdata" doesn't work

관련 문제