회원호스팅-네트워크 자원 공유 서비스 :: 진보네트워크센터

진보넷   회원 호스팅

작성자
에띠
제목
[노프레임] 변수를 이용하여 좀더 효율적으로 사용하기~!
작성일
2002.12.21 02:09:51
조회수
8,123
추천
0
문서 주소
http://hosting.jinbo.net/webbs/view.php?board=manual&id=47
Untitled Document 올만에 여기 글을 올립니다..


우선 프레임 싸이트와 노프레임 홈페이지가 어떤 건지 알아봅시다 -_-;
(추가로 노가다 홈페이지도..;)

1. 프레임 홈페이지

http://kcturdw.jinbo.net <-- 이런 식으로 만들어 진 곳을 프레임 홈페이지

프레임 홈페이지란 프레임을 나눈 후 각 프레임마다 새로운 페이지를
읽게 되는 방식으로써 트래픽이나 로딩 속도에 장점이 있습니다.
한 화면에 메뉴 같은게 일정하니 편하기도 편하고...;; 또한 메뉴같
은 부분 수정시 편리합니다. 반면 위에 보시는 바와 같이 스크롤바가
화면의 일부분만을 스크롤 하게 됨으로써 조금 답답한 점이 있습니다.
디자인 구성면에서도 상당히 힘들고.. 물론 전체 구성이 어떻게 되
느냐에 따라 다르겠지만 보기도 그렇게 좋지는;;
(개인적인 견해입니다.) 않습니다.
어떻게 만드는지는 다 알테니 생략하고;;(모르시는 분들은
소스 보기로 참고 하시면..(죄송합니다;;)

2. 노프레임 홈페이지

노프레임 홈페이지란 말 그대로 'no frame' 프레임을 사용하지
않았다는 말입니다;;;
그럼 프레임을 사용하지 않고 어떤식으로 만드냐구요? 그냥
만들면 되지요(퍽~ 죄송합니다;;)
여기 우선 말씀 드려야 될 것이 노가다 홈페이지와 노프레임
홈페이지는 구별해 달라는 것입니다.(노가다도
노프레임이긴 하지만...) 저도 한때 노가다 홈페이지를
노프레임 홈페이지로 알고 만든적이 있어지요...;;
노가다 홈페이지를 설명하자면 말그대로 프레임을 사용하지
않고 한 페이지, 한 페이지를 노가다 식으로 만든 홈페이지를
말합니다. 예를 들자니...마땅히 -_-; 가령 제가 제작한
홈페이지( http://nonameky.co.kr )가 노가다 홈페이지
방식으로 만들어졌다면 다른 페이지로 넘어갈때마다 모든
페이지가 위에 메뉴부분과 왼쪽 메뉴부분이 포함된 페이지로
만들어 주어야겠죠?

마땅한 예가 없네용...(죄송 ㅡ,.ㅡ)

그렇게 된다면 파일의 용량이 늘어날뿐만 아니라(그다지 상관은...;;)
만약 위쪽 메뉴에 무엇인가 추가를 하고 싶거나 잘못되어 고치려고
한다면 위에 만들어 놓은 모든 페이지를 고쳐주어야 됩니다.
이 만들어 놓은 페이지가 많으면 많을수록 노가다의 진가(?)를
발휘하게 되는거죠. 결국 아무리 프레임의 홈페이지의 단점을
보완하기 위해서 저런식으로 만드다고 해도 결국 페이지가
늘어나면 늘어날수록 포기하게 될 수 밖에 없습니다.
(의지의 한국인이라면...가능할듯~)

그럼 과연 노프레임 홈페이지는 어떻게 만드는 것일까요?
우선 많은 사람들이 비효율적인 방법을 알고 있는 것에 대해서
말하고 싶군요. 대부분의 사람들은 표로 레이아웃을 짠다음에
인클루드문을 써서 불러오기식으로 한다고 알고 계실껍니다.
이 부분에서는 별 다른게 없습니다. 하지만 인클루드문으로
불러올때 대부분 파일명을 지정해서 불러옵니다. 즉 다시 말
해서 아래의 소스코드 처럼 불러오는 것이지요.

<table height="200" width="300" cellpadding="0" cellspacing="0">
<tr>
<td height="200" width="50">

<? include ("http://nonameky.co.kr/sogae.php") ?>

</td>
<td height="200" width="250">

<? include ("http://www.kydz.net/baik.php") ?>

</td>
</tr>
</table>

하지만 이런식으로 하게된다면 공통된 메뉴부분 같은 것은
파일 하나로 불러올 수 있겠지만 'body.html' 이 부분이 페
이지 마다 다르기 때문에 전체 레이아웃이 만들어진 페이지
는 결국 페이지마다 만들어야 되기는 마찬가지입니다. 만약
전체 레이아웃이 틀렸다면 만들어놓은 페이지를 다 고쳐야
되는건 마찬가지이구요.
결국 노가다 홈페이지와 거의 버금가는 작업을 해야합니다.
(파일수는 오히려 많아지지요..)

그럼 어떻게 해야 하는 것일까요? 그건 바로 변수를 사용하는 것입니다.
말로 설명하는 것보다는 소스를 보여드리는게 좀더 이해가 쉽게 될꺼 같군요.

<table height="200" width="300" cellpadding="0" cellspacing="0">
<tr>
<td height="200" width="50">

<? if(is_file("$menu.php")) {include ("$menu.php");}
else {include ("menu.php")} ?>

</td>
<td height="200" width="250">

<? if(is_file("$body.php")) {include ("$body.php");}
else {include ("body.php")} ?>

</td>
</tr>
</table>

이런식으로 index.html 문서를 작성 후(이름은 아무거나 해도 상관 없습니다.
일부 계정은 확장자를 php로 해주세요.)
페이지를 링크시

"http://www.kydz.net/index.html?menu=메뉴에 들어갈 파일이름&body=내용에 들어갈 파일이름"

저런식으로 주소를 넣어주면 되는거죠.(물론 들어갈 파일은 만드시고;;)

<? if(is_file("$body.php")) {include ("$body.php");}
else {include ("body.php");} ?>

이 부분이 뭔지 궁금하시다구요? 대충 다 아시겠지만 모르시는
분들을 위해서 설명;; 하겠습니다.
php코드를 한글로 번역하자면 -_-;;
만약 파일이름이 &body.php 일경우 &body.php로 출력하라.
아닐경우 body.php를 출력하라.... ;;;
쉽게 말해서 그냥 <? include ("$body.php"); ?>
이렇게 써주어도 되지만 변수 값이 주어지지 않을 경우를
대비해서 위와 같은 식으로 적어주었다고 생각하시면 되겠습니다.
(메인 페이지 같은경우)

(menu 변수에 넣을수 있는 값 : test, test2, test3 (body 값 동일))

** 이 방법은 자기 홈페이지 계정이 PHP가 지원되어야 합니다
(야후나 네이버 등과 같은 계정에서는 되지 않습니다) **

<html>

<head>
<title> 테스트용 사이트 </title>
<!-- 스타일 시트 불러오기 -->
<link rel="stylesheet" href="../text.css" type="text/css">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<!-- 위에 여백 넣기 -->
<table height="50" width="900" cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
<td height="50" width="900" colspan="2">
</td>
</tr>
</table>
<table height="500" width="900" cellpadding="0" cellspacing="0" border="1" align="center">
<!-- 메뉴 시작 -->
<tr>
<td height="500" width="200" bgcolor="#FBFBFB" align="center">

<? if(is_file("menu/$menu.html")) {include ("menu/$menu.html");}
else {include ("menu/test.html");} ?>

</td>
<!-- 본문 시작 -->
<td height="500" width="700">

<? if(is_file("body/$body.html")) {include ("body/$body.html");}
else {include ("body/test.html");} ?>

</td>
</tr>
</table>
</body>

</html>

그리고 이건 menu폴더 안의 파일들의 소스입니다.

test.html

<table height="500" width="200">
<tr>
<td class="base2" height="500" width="200">기본 페이지입니다.
<br>주어진 값외에 다른 값을 넣어보세요.<br>이 페이지가 나와야 정상입니다.
</td>
</tr>
</table>

test2.html

<table height="500" width="200">
<tr>
<td class="base2" height="500" width="200">메뉴값에 test2를 넣었을때입니다.
</td>
</tr>
</table>

test3.html

<table height="500" width="200">
<tr>
<td class="base2" height="500" width="200">메뉴값에 test3를 넣었을때입니다.
</td>
</tr>
</table>

이 밑에꺼는 body 폴더 안의 파일들의 소스입니다.

test.html

<table height="500" width="700">
<tr>
<td class="base2" height="500" width="700">body 값을 안 넣었거나
잘못 넣었거나 test로 넣었을때의 페이지 입니다.
</td>
</tr>
</table>

test2.html

<table height="500" width="700">
<tr>
<td class="base2" height="500" width="700">body 값을 test2로 넣었을때 페이지
</td>
</tr>
</table>

test3.html

<table height="500" width="700">
<tr>
<td class="base2" height="500" width="700">body 값을 test3로 넣었을때 페이지
</td>
</tr>
</table>