메뉴 건너뛰기

프로그램언어

조회 수 18568 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

브로우저의 Back, Forward 버튼을 누를 때
로그인, 글 작성등을 처리하는 중간 페이지에 걸려서
1. 만료된 페이지라는 메시지가 출력되거나
2. 처리 결과에 따라 오류 페이지로 계속 되돌아 오는 경우를
만들어 보셨을거라 생각됩니다.

예를들어
A(로그인 입력 페이지) -> B(로그인 처리 페이지)
-> C(정상처리 후 이동 URL), D(오류 처리후 이동 URL)
방식으로 처리한다면
B는
1. 정상이면 (메시지 출력 후) C로 이동 오류이면 (오류메시지 출력 후)  D로 이동
방식이거나
2. 정상이면 C로 이동 오류이면 D로 이동 (D = 오류메시지를 포함한 A와 동일/유사 페이지)
방식일겁니다.

메시지를 출력하기 위해 JavaScript의 alert를 사용했다면
C나 D 페이지에서는 브로우저의 Back버튼을 누르면
B로 이동했다가 C나 D로 되돌아가는 문제가 반복됩니다.

혹은 Location header로 C나 D로 보낸다면
alert('로그인 실패'); 등의 메시지를 출력할 수 없게 됩니다.

이런 문제를 해결하기 위한 방법을 제시합니다.

먼저 페이지 이동 시키는 방법은
1. HTTP Header > header("Location: url"); < PHP Function
2. HTTP Header > header("Refresh: 0; URL=url"); < PHP Function
3. JavaScript > window.location.href = url;
4. JavaScript > window.location.replace(url);
5. Meta Tag > <meta http-equiv="Refresh" content="0; URL=url">
등입니다.

위에서 말씀 드렸듯이
1번 방법은 처리 결과 메시지를 출력하지 못합니다. (Back 버튼 문제는 없음)
3,4,5번 방법은 Back 버튼을 누르면 다시 C나 D로 되돌아 오는 문제가 반복됩니다.

2번 방법으로 처리하면
Location Header와
메시지 출력을 동시에 할 수 있습니다.
(먼저 메시지가 출력되고 확인을 누르면 페이지로 이동)

아래 함수는 제가 사용하고 있는 것에
이런 이슈를 반영하여 수정한 것 입니다.

사용방법
Error(Message, Url, Url2);
Message : Alert할 문자열 (줄 구분은 <br>)
Url : 현재 페이지의 이동 주소 혹은 팝업창일 경우 'self.close':닫기, 'history.back':이전페이지
Url2 : 부모창의 이동 주소

-------------------------------------------------------------------------------------------
    function error($message="", $url="", $url2="")
    {
        if(!$message && !$url)
            return;

        $message=eregi_replace("<br>|<br/>|<br />","\n",$message);
        $message=str_replace(""","\"",$message);
        if($url=="self.close")
        {
            echo "<script language="JavaScript">n";
            if($message)
            {
                echo "alert('{$message}');n";
            }
            echo "self.close();n";
            if($url2)
            {
                echo "opener.location.href = "{$url2}";n";
            }
            echo "</script>n";
        }
        else if($url=="history.back")
        {
            echo "<script language="JavaScript">n";
            if($message)
            {
                echo "alert('{$message}');n";
            }
            echo "history.back();n";
            if($url2)
            {
                echo "opener.location.href = "{$url2}";n";
            }
            echo "</script>n";
        }
        else
        {
            if(!$sented = headers_sent())
                header("Refresh: 0; URL={$url}");
            if($message)
            {
                echo "<script language="JavaScript">n";
                echo "alert('{$message}');n";
                if($sented)
                    echo "window.location.href="{$url}";n";
                echo "</script>n";
            }
        }
    }

간단하게 Function이나 올릴까 해서 시작했는데
장문이 됐네요.


  1. php 문자열관련 함수

    Date2017.03.06 Views15580
    Read More
  2. php로 db 컨트롤 1

    Date2017.03.06 Views15769
    Read More
  3. PHP에서 Excel 파일을 만들 수 있는 PHPExcel

    Date2017.03.06 Views17112
    Read More
  4. PHP의 유동변수!? - $a1 ~ $a2 같은 형식의 변수를 반복문 돌릴때...

    Date2017.03.06 Views16610
    Read More
  5. PHP EXCEL export시 시트 이름 지정하여 여러 시트에 데이터 쓰기

    Date2017.03.06 Views18266
    Read More
  6. PHP 만년달력 소스

    Date2017.03.06 Views17063
    Read More
  7. text파일에 한줄씩 내용추가하기

    Date2017.03.06 Views17533
    Read More
  8. 지엠 웹에디터 v1.1 (저작권표시없음)|

    Date2017.03.06 Views17109
    Read More
  9. Ajax로 구연한 실시간 서버시간출력

    Date2017.03.06 Views21031
    Read More
  10. ajax refresh 시키기(자동리플래쉬) with php

    Date2017.03.06 Views23185
    Read More
  11. 오류 메시지 출력(alert) 및 페이지 이동(refresh) 관련

    Date2017.03.06 Views18568
    Read More
  12. 메일주소의 골뱅이를 그림처리하기

    Date2017.03.06 Views15508
    Read More
  13. PHP로 엑셀 자료 MySQL에 넣기

    Date2017.03.06 Views17875
    Read More
  14. CodeIgniter에서 PHPExcel 사용하기

    Date2017.03.06 Views20289
    Read More
  15. PHPExcel 클래스를 이용해 Excel 2007~2010 의 xlsx 파일 읽기 (100만 행 까지)

    Date2017.03.06 Views21694
    Read More
  16. phpexcel을 이용한 PHP로 엑셀파일 읽기와 생성

    Date2017.03.06 Views22787
    Read More
  17. 파일업로드

    Date2017.02.19 Views19352
    Read More
  18. PHP에서 데이터를 엑셀(Excel)로 저장

    Date2017.02.19 Views18428
    Read More
  19. [PHP] 게시판 글쓰기와 이미지 파일 DB 저장 및 불러오기 예제

    Date2017.02.19 Views35886
    Read More
  20. array_slice 배열의 일부를 추출

    Date2016.12.23 Views20775
    Read More
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved