프레임 홈페이지에서 로그인 후 게시판 새로고침(refresh) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

프레임 홈페이지에서 로그인 후 게시판 새로고침(refresh) 정보

프레임 홈페이지에서 로그인 후 게시판 새로고침(refresh)

본문

노프레임 홈페이지가 대세인듯 보여서 그다지 많은 분들께 도움이 될런지는 모르겠지만요...
저같이 지름신보다 더 무서운 귀차니즘신이 충만해서(다들 그렇다는것은 아닙니다...  ^^;),
기존에 만들었거나 만들어오던 프레임 홈페이지만을 고수하는 분들께 도움이 될까해서 올립니다.

프레임 홈페이지에서 외부로그인과 그누보드 게시판을 그림과 같이 별도의 프레임에 나오도록 했을때,
로그인 한 후에도 게시판은 멀뚱~ 하게 있어서 직접 새로고침을 해줘야하는 불편함이 있어서... ㅡ.ㅡ;
궁리를 하다보니... (고수님들이야 다 아시겠지만요...) ^^;
제가 잘 못찾은건지도 모르지만 여기 질문답변/팁 게시물들을 검색해보니 없는듯해서요...

아래와 같이 index.htm 파일에서 프레임을 나누면 그림과 같이 구성이 됩니다.
(불필요한 부분들은 제거하고 올립니다~)

<frameset rows="50, 1*, 30">
        <frame name="top" src="top.htm">
        <frameset cols="200, 1*">
                <frame name="login" src="login.php">
                <frame name="main" src="./gnu4euc/bbs/board.php?bo_table=test">
        </frameset>
        <frame name="bottom" src="bottom.htm">
</frameset>

각각의 이름을 top, login, main, bottom 으로 지정을 했구요.
각각을 순서대로 번호를 붙이자면... top=0, login=1, main=2, bottom=3 이 됩니다.
외부 로그인을 이용할 때 로그인 후에... 게시판도 로그인 후 상태로 보여지게 하려면
'main' 프레임을 새로고침 해주어야 되겠죠???
로그아웃하는 반대의 경우도 마찬가지구요.

방법은 간단합니다.
bbs/logout.php 파일과 bbs/login_check.php 파일 각각의 가장 아래쪽에 보시면...

goto_url($link); 라고 있습니다. 이 코드의 바로 윗줄에 아래 코드를 삽입하세요.
    echo "<script language='JavaScript'> top.frames['프레임명'].location.reload(); </script>";
또는
    echo "<script language='JavaScript'> top.frames[순번].location.reload(); </script>";

위 예제에서는 'main' 프레임이 refresh 되어야 하니...
    echo "<script language='JavaScript'> top.frames['main'].location.reload(); </script>";
또는
    echo "<script language='JavaScript'> top.frames[2].location.reload(); </script>";
가 됩니다.

되도록이면 스킨쪽에 넣어보려고 궁리를 해봤는데... 로그인은 문제 없었는데...
로그아웃하면서 session_destroy() 부분에서 에러가 발생하더군요. ㅡ.ㅡ;
대신 위 두 파일에서는 위치도 찾기 쉽고, 보다 명확한듯해서 그냥 저기다가 넣었습니다. ^^;

회원가입/탈퇴의 경우는 반대로 'main' 프레임에서 과정이 이루어지고 완료 후 'login' 프레임이 refresh 되어야 하니...
회원가입시에는 간단하게 member 스킨의 register_result.skin.php 파일의 제일 밑부분에서...
    <!-- 환영테이블 [끝] -->
    <p align=center><a href="<?=$g4[url]?>/">

이 부분을 <?=$g4[url]?> 대신 여러분의 홈페이지 루트로 잡아주시면 되겠고...

탈퇴시에는 bbs/member_leave.php 파일의 제일 밑부분...
    alert("{$member[mb_nick]}님께서는 " . date("Y년 m월 d일") . "에 회원에서 탈퇴 하셨습니다.", $url);
의 바로 윗줄에...
    echo "<script language='JavaScript'> top.frames['login'].location.reload(); </script>";
또는
    echo "<script language='JavaScript'> top.frames[1].location.reload(); </script>";
을 삽입해 주시면 되겠습니다.

홈페이지 구성에 따라서 조금씩 다를수도 있겠습니다만... 적절히 응용해주시면... ^^;

제가 개인적으로 iframe을 잘 사용하지 못해서 복잡한것은 못해봤지만 간단하게 테스트 해본 바로는...
iframe을 삽입해서 사용한 경우에도 마찬가지로 적용이 가능합니다.

결과적으로...
    echo "<script language='JavaScript'> top.frames['프레임명'].location.reload(); </script>";
요거 한줄 삽입해주면 된다는 말인데... 괜히 설명이 길어졌네요... ㅡ.ㅡ;

좋은 꿈 꾸시고 내일도 좋은하루 되시길 바랍니다~ ^^;

(참고로, 그림의 외부로그인은 '착한아담'님의 로그인 스킨입니다. ^^;)
(http://sir.co.kr/bbs/tb.php/g4_skin/2981)
추천
1

댓글 7개

전체 3 |RSS

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT