본문 바로가기
PHP 게시판 만들기

10. 화면에 표시되는 내용 구분하기

by 똑똑한 영장류 2012. 12. 13.


Chap 10.


앞에서는 눈에 보이지 않는 중복 코드들을 하나로 작성해 봤었습니다. 이번엔 브라우저의 화면에 표시되는 내용을 내용에 따라 구분해 봅시다.


대부분의 경우, 화면 상단에는 메뉴바를 포함해서 사이트 모든 페이지에서 나타나는 내용들이 위치하게 됩니다. 그렇지 않을 수도 있지만요..대개 그렇다구요..


화면 하단에는 작은 메뉴 혹은 저작권 표시 등 전 페이지에 걸쳐 유사한 내용을 표시하곤 하지요.


그리고, 그 사이에는 페이지마다 달라지는 컨텐츠가 나타납니다.


왼쪽에 메뉴바가 있을 수도 있고, 오른쪽에 있을 수도 있고..그런 부분은 일단 컨텐츠 영역에 집어넣읍시다.


그러면... 위에서부터 헤더 영역, 컨텐츠 영역, 푸터 영역으로 이름을 붙이겠습니다.





아시다시피, BODY 태그 안의 내용들이 화면에 출력됩니다.

그 내용들이 위 3가지로 나누어질 수 있다는 말입니다.


header.php, footer.php 를 만들어 놓고, 화면에 뭔가를 표시하는 파일에서 이 두개를 포함시키면 되겠습니다.


위 내용을 Chap 2. 에 나왔던 기본 템플릿 버전 1에 적용해 봅시다.




<!DOCTYPE HTML>
<HTML>
    <HEAD>
        <TITLE>기본 틀</TITLE>
        <meta charset="utf-8">
    </HEAD>
    <BODY>
    <div class="header">
            헤더영역
    </div>
    <div class="content">

            컨텐츠영역
    </div>
    <div class="footer">
            푸터영역
    </div>

    </BODY>
</HTML>
 



빨간 색으로 표시된 부분을 header.php로 저장하고, 파란 색으로 표시된 부분을 footer.php 로 저장합시다. 위치는 www 디렉토리입니다.


그러면, 이후 다른 파일에서는 아래와 같이 작성을 할 수 있습니다.



<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php';
include $_SERVER['DOCUMENT_ROOT'].'/header.php';
?>
            컨텐츠영역
<?php
    include $_SERVER['DOCUMENT_ROOT'].'/footer.php';
?> 


페이지별로 바뀌는 컨텐츠 내용은 위의 컨텐츠 영역에 작성하면 됩니다.



이전에 작성했던 파일들을 위 방식대로 모두 수정합시다.


그리고, 하나 더 수정할 내용이 있습니다.


로그인 후에, login_check.php엣  login_done.php 로 전환하기 위해 header()함수를 이용하는 부분에서 사이트 주소가 하드코딩 되어있는데, 이것을 임의의 주소에 모두 이용가능 하도록 수정합시다.

하드코딩은 안 좋아요~~ ㅎ


header("Location: http://mydomain.com/member/login_done.php");


이 부분입니다.


mydomain.com이 아니더라도 이용가능 하려면, $_SERVER[] 변수에서 현재 도메인 주소를 가져오면 됩니다.


$_SERVER['HTTP_HOST'] 는 호스트명을 얻을 수 있는 변수입니다. 우리의 예에서는 mydomain.com 을 가지고 있습니다.


그럼, 다음과 같이 URL 관련 배열 변수를 하나 만들고, 그 안에 값을 입력합시다.


$url = array();
$url['root'] = 'http://'.$_SERVER['HTTP_HOST'].'/';
header('Location: '.$url['root'].'member/login_done.php');


위 처럼 다시 작성할 수 있습니다.


$url[] 변수도 아무곳에서나 이용할 수 있게, preset.php 에 작성해두면 좋을 거 같군요.


테스트 결과는 아래와 같습니다. 로그인해서 login_done.php 까지 잘 가는군요.





여기까지 작업한 파일입니다.


config.php 는 생략입니다. ^^




이상!




www.zip










댓글