개발 Q&A

제목 질문드립니다.
글쓴이 꼬세 작성시각 2014/09/18 10:26:15
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15315   RSS
[컨트롤러]

$str_msg=$this->lang->line('common_modify_completed');    //alert 메세지설정
$this->session->set_flashdata('str_msg',$str_msg);
redirect('test/abc', 'refresh');

[뷰]

 if($str_msg=$this->session->flashdata('str_msg'))
    {
        echo '<script type="text/javascript">';
        echo '$(function() {';
        echo    '$.alert.open("info","'.$str_msg.'")';
        echo '});';
        echo '</script>';    
    }

이런형식으로
jquery alert창으로 알림을 띄우고 있습니다.

알림창을 띄우는것까지는 문제가 없습니다만.
파이어폭스를 제외한 인터넷 익스플로러,크롬등에서
뒤로가기시 알림창이 다시 나오는 문제가 발생하는군요.

이것을 해결해볼려고.. 
http://blog.outsider.ne.kr/230 에 참고하여 실행해봐도 결과는 똑같습니다.

혹시 위와같은 문제를 해결하기 위한 가장 좋은 방법이 무었일까요?

 
 다음글 preg_replace 함수 에서 링크 생성시 주소 질... (1)
 이전글 폼검증시 에러가 발생하면 다시 리턴될때 기존 페이지에 ... (7)

댓글

변종원(웅파) / 2014/09/18 10:34:52 / 추천 0
포럼검색에서 '뒤로가기'로 검색해보세요.

게시판이동합니다. 
꼬세 / 2014/09/18 11:10:12 / 추천 0
웅파님 답변감사합니다. 해당 게시물 검색해서 아래글을 참고해서

<?php
        $this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');        
        $this->output->set_header('Pragma:no-cache');
?>
이런식으로 필요한 해당 페이지 에서만 사용하도록 했습니다. 잘 한건지 모르겠네요~
혹시 잘못된부분 있는게 있으면 알려주세요~
아참 그리고 웅파님 책은 아주 잘 보고 있습니다.^^ 감사합니다.


//////////////////////////////////////////////////////
2. 브라우저에서 캐시를 사용하도록 한다면 화면에는 로그인된 것처럼 보이지만 실제 액션에서 (글쓰기, 댓글쓰기, 삭제 등등) 세션이 있는지 검사하고 처리하시면 캐시도 쓰고 액션도 막을 수는 있습니다.
다만 좀 찜찜하기는 합니다.

매뉴얼의 redirect 를 보니 답이 있네요. redirect의 파라미터로 refresh를 사용하거나
redirect전에 set_header()함수로 위의 헤더들을 몇몇 필요한 페이지에서만 사용하면 될것 같습니다.
-> 로그인이 되어야 액션을 취할 수 있는 페이지..
redirect에 두번째 파라미터를 안쓰면 디폴트가 location입니다. 이 경우는 뒤고가기시 캐시를 사용합니다.
두번째 파라미터로 refresh를 사용하면 header("Refresh:0;url=".$uri); 이렇게 되어서 로그아웃 상태가 아닌
로그인으로 나옵니다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
변종원(웅파) / 2014/09/18 11:20:19 / 추천 0
넵. 캐시를 사용하지 않도록 처리하시면 기본적으로 처리가 됩니다.
책 구입 감사합니다. ^^
CI_ORL / 2014/09/19 18:13:40 / 추천 0
구글에 찾아 보면... 뒤로가기 방지 하는게 있을텐데...
찾아 놓은게 없어서... 링크는 못 걸어 드리겠어요