웹마스터 팁

원문 링크 : http://www.100kwa.net/zeroboard/zboard.php?id=php&no=47

존칭 생략함을 양해해 주시기 바랍니다.

아래 본인의 글을 삭제하려고 하였다.
그런데 다른 분들의 코멘트 속에 확실하고 간단한 답이 있는 것을 발견하였다.
비록 잘 모르더라도 엔지오에 글을 올린 덕분에 기초를 확실하게 배울 수 있는 즐거음 ...

댓글 주신 분들께 진심으로 감사를 드리며, 정리해 보자면

1. 인클루드될(백과넷의 경우 상당 85픽셀 내용)파일의 맨 위를
<?
  $_zb_url = "http://www.100kwa.net/zeroboard/";
  $_zb_path = "/home/hosting_users/4nara/www/zeroboard/";
if($included) return false;
else $included = 1;
  include $_zb_path."outlogin.php";
?>

<html>
와 같이 시작한다.

2. 위 파일을 인클루드하는 다른 파일들에서는 단순히 include만 해 주면 된다.

3. 주의할 사항
<? include "http://www.100kwa.net/master/가나다.htm"; ?>과 같이 하면 안 된다.
이렇게 사용해 보니, $included값을 무시하고(적당한 표현인가?) 거듭 불러들였다.
<? include "../master/가나다.htm"; ?>과 같이 상대경로를 사용해야 된다.

4. 잔소리 : 위 몇 줄의 정리는 나처럼 헤매는 초보자들을 위한 배려이다.

아래 본인의 글을 보기 전에, 먼저 댓글들을 보시기 바란다.
---
제로보드에는 그룹 상단에 포함시킬 파일, 각 게시판의 상단에 포함시킬 파일 등을 설정하여 편하게 디자인할 수 있는 기능을 제공한다.
PHP의 include 명령을 이용하거나, 헤더 파일에서 정의하는 것 같은데 헤더 파일 운운은 아직 이해하지 못한 부분이고, 인클루드 명령을 사용하면 노프레임 페이지마다 같은 메뉴파일을 삽입하여 일관된 디자인을 유지할 수 있다.
뿐만 아니라, 메뉴파일에서 스타일시트 등을 일괄 정의할 수 있고 배경이미지를 한 번만 삽입해도 모든 파일에 나타나며, 레이어를 띄워서 디자인의 폭을 넓힐 수도 있다.
이 모든 내용을 며칠 사이에 터득하고는 상당히 기뻤다.

1. 전제가 되는 상황
백과넷을 방문하면 디자인을 볼 수 있으므로 그림 업로드는 생략한다.
1)
메뉴 파일 : /master/가나다.htm
- 이 파일에 /master/가나다_link.htm(ㄱ,ㄴ,...), /master/family_top.htm(사이트GO-링크100,홈피100,...), print_outlogin("kim",1,10) 등 3개의 인클루드 또는 프린트가 있다.
2)
개개의 파일에서 /master/가나다.htm (메뉴)파일을 인클루드한다.

2. 문제 상황
신문.htm 파일에서도 메뉴파일을 인클루드하고 전문신문.htm 파일에서도 메뉴파일을 인클루드한다. 모든 개별 파일에서 메뉴파일을 인클루드해야 사이트 내부 또는 패밀리에 속한 다른 사이트로의 이동을 위한 내비게이션이 가능하기 때문이다.
그런데 신문.htm 파일에서 전문신문.htm 파일을 인클루드하면 어떤 상황이 발생할까?
메뉴 파일을 2번 인클루드하는 결과, 메뉴 파일에 인클루드 또는 프린트된 객체들이 같은 이름으로 2번 떠오르면서 객체성을 상실하고 다양한 에러의 발생원인으로 변질된다.

3. 유저를 위한 고민
손님이 찾지 않는 가게는 망한다고 보아야 할 것이다.
손님은 신문.htm 파일을 찾기도 하고 전문신문.htm 파일을 찾기도 한다.
그런데 신문.htm 파일에 전문신문.htm 파일을 인클루드하면 더 좋아할 것 같다.


3. 초보적인 해결책
그래서 궁여지책으로 생각한 방법이 전문신문.htm 파일의 내용만 뽑아서 전문신문@.htm 파일을 추가로 만들고 전문신문.htm 파일에서도 그 새 파일을 인클루드하고, 신문.htm 파일에서도 그 새 파일을 인클루드하는 방법을 사용하면 문제는 해결된다.
그러나 만족할 수 없는 지나치게 초보적인 방법이다.

4. 객체의 존재여부를 따져서 같은 파일은 2번 인클루드하지 않기
HTML에서 객체의 존재여부를 확인하려면 document.all['이름']=='[object]'와 같은 비교식으로 처리하며, PHP에서 객체의 존재여부를 확인하는 함수로는 is_object가 있다.
그러나 필자와 같은 초보로서는 아무리 짜맞추어 보아도 명쾌한 답이 떠오르지 않았다.

5. 변수 전달하여 해결
인클루드된 파일에서 $로 시작하여 정의한 변수는, 메인 파일에서도 그대로 인식한다.
메뉴 파일에 들어가는 하나의 객체 정의 뒤에 그 객체를 변수에 담는 것이다.
        <td width="200" valign="top" rowspan="2">
            <div id="lay_가나다" style="width:180px; height:2000px; position:absolute; left:0px; top:0px; z-index:1;">
                <table border="0" cellpadding="0" cellspacing="0" width="180" height="2000" bgcolor="#CDDEEF">
                    <tr>
                        <td width="994">
                            <p> </p>
                        </td>
                    </tr>
                </table>
            </div>
        <? $log100 = document.all.lay_가나다; ?>
        </td>
이제 메뉴 파일을 인클루드하는 개별 파일에 무조건 인클루드하는 다음 구문 대신
<?
include "../master/가나다.htm";
?>
변수 $log100이 존재하지 않으면 인클루드하는 구문으로 바꾸자.

<?
if (!$log100) include "../master/가나다.htm";
?>
이것으로 해결되었다.
누구나 다 아는 사실일지 모르지만, 모르는 분도 있을 것이다.
기쁜 마음에 공유하고파 이 글을 올린다.

글 보아 주셔서 감사합니다.
제목 글쓴이 날짜
부산오피 부산OP ⦑오피쓰주소.COM⦒ 부산휴게텔 부산오피 부산오피 koykoyah 2025.02.21
평촌오피 ⦑오피.CLUB⦒ 평촌OP 평촌오피 평촌출장샵 평촌오피 koykoyah 2025.02.21
동탄오피 ⦑출장안마사이트.COM⦒ 동탄오피 동탄출장마사지 동탄오피 동탄OP koykoyah 2025.02.21
안양오피 안양오피 ⦑오피쓰주소.COM⦒ 안양OP 안양스파 안양오피 koykoyah 2025.02.21
동대문오피 동대문오피 ⦑출장안마사이트.COM⦒ 동대문OP 동대문스파 동대문오피 koykoyah 2025.02.21
수원오피 ⦑출장마사지안내.COM⦒ 수원오피 수원OP 수원건마 수원오피 koykoyah 2025.02.21
선릉오피 선릉출장안마 ⦑오피.CLUB⦒ 선릉OP 선릉오피 선릉오피 koykoyah 2025.02.21
대구오피 ⦑출장마사지안내.COM⦒ 대구마사지 대구오피 대구오피 대구OP koykoyah 2025.02.21
동두천오피 ⦑오피사이트.NET⦒ 동두천OP 동두천오피 동두천출장샵 동두천오피 koykoyah 2025.02.21
안양오피 안양출장안마 ⦑출장마사지안내.COM⦒ 안양OP 안양오피 안양오피 koykoyah 2025.02.21
부천오피 부천OP ⦑오피쓰주소.COM⦒ 부천휴게텔 부천오피 부천오피 koykoyah 2025.02.21
해운대오피 해운대오피 ⦑오피사이트.NET⦒ 해운대OP 해운대스파 해운대오피 koykoyah 2025.02.21
강북오피 ⦑오피쓰주소.COM⦒ 강북마사지 강북오피 강북오피 강북OP koykoyah 2025.02.21
가락오피 ⦑오피쓰.COM⦒ 가락마사지 가락오피 가락오피 가락OP koykoyah 2025.02.21
군산오피 군산오피 ⦑오피.CLUB⦒ 군산OP 군산스파 군산오피 koykoyah 2025.02.21
강동오피 ⦑출장마사지안내.COM⦒ 강동오피 강동출장마사지 강동오피 강동OP koykoyah 2025.02.21
산본오피 ⦑오피.CLUB⦒ 산본오피 산본출장마사지 산본오피 산본OP koykoyah 2025.02.21
신도림오피 신도림출장안마 ⦑오피사이트.NET⦒ 신도림OP 신도림오피 신도림오피 koykoyah 2025.02.21
청주오피 청주출장안마 ⦑오피사이트.NET⦒ 청주OP 청주오피 청주오피 koykoyah 2025.02.21
서면오피 ⦑오피쓰주소.COM⦒ 서면오피 서면출장마사지 서면오피 서면OP koykoyah 2025.02.21