웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
채널을 가장 쉽게 하는법
2006.01.02 14:23
이 팁은 초보자 위주로 만들었습니다.
<?
$channel = $HTTP_GET_VARS["channel"];
if(!$channel)
{ //채널이 지정되지 않은 경우
include "index_2.php"; //메인페이지를 include 해라...
}
if($channel == "community")
{ //채널이 커뮤니티라면...
include "community.php"; //커뮤니티페이지를 include 해라...
}
elseif($channel == "zeroboard")
{ //채널이 제로보드라면...
include "zeroboard.php"; //제로보드페이지를 include 해라...
}
else
{
echo "채널이 없습니다."; //채널이 없을경우, "채널이 없습니다"라고 표시해라
}
?>
먼저 이위의 소스를 index.php에다가 넣어주세요. (주의! index.php안의 내용은 없어야 됩니다.)
이런식으로 하시면 채널이 됩니다.
문의사항은 코멘트로 달아주세요.
초고속으로 만든거라 오류가 나올 수 있습니다.
<?
$channel = $HTTP_GET_VARS["channel"];
if(!$channel)
{ //채널이 지정되지 않은 경우
include "index_2.php"; //메인페이지를 include 해라...
}
if($channel == "community")
{ //채널이 커뮤니티라면...
include "community.php"; //커뮤니티페이지를 include 해라...
}
elseif($channel == "zeroboard")
{ //채널이 제로보드라면...
include "zeroboard.php"; //제로보드페이지를 include 해라...
}
else
{
echo "채널이 없습니다."; //채널이 없을경우, "채널이 없습니다"라고 표시해라
}
?>
먼저 이위의 소스를 index.php에다가 넣어주세요. (주의! index.php안의 내용은 없어야 됩니다.)
이런식으로 하시면 채널이 됩니다.
문의사항은 코멘트로 달아주세요.
초고속으로 만든거라 오류가 나올 수 있습니다.
댓글 17
-
미오유
2006.01.02 21:15
?channel=ㅇㅇ 이렇게 되게요. -
정용우
2006.01.02 18:58
채널이먼가요....? -
미오유
2006.01.02 14:33
우선 테스트 해본결과 메인페이지부분과 채널이 없다는 부분이 같이 나왔습니다 -
okoru
2006.01.03 15:10
좀 더 명확하게 하기 위해 이렇게 하는 편이 좋을 것 같내요.
<?php //XML 문서도 "<?xml ... ?>" 로 시작되기 때문에 PHP임을 명시 합니다.
$channel = $_GET["channel"]; //맞는 지는 모르겠는데, $_GET이나 $_POST를 바로 변수로 사용하지 못하는 서버도 있다고 들었습니다.
if(empty($channel)) // "!$channel" 이라고 할 경우 "file.php?channel="나 "file.php?channel=0" 의 경우도 실행되어 버립니다.
include "index_2.php";
elseif($channel == "community") //문자열은 따옴표로 감싸는 것이 좋죠.
include "community.php";
elseif($channel == "zeroboard")
include "zeroboard.php";
else
echo "채널이 없습니다.";
?>
또한 이런 경우엔 switch-case를 이용하는 것이 훨씬 깔끔할 것 같습니다.
<?php
$channel = $_GET["channel"];
if(empty($channel))
include "index_2.php";
switch($channel) {
case "community" :
include "community.php";
break;
case "zeroboard" :
include "zeroboard.php";
break;
default :
echo "채널이 없습니다.";
}
?> -
미오유
2006.01.03 16:56
아~ 전 if문이 쉬워요 ㅋㅋ
if(empty($channel)) 이런것도 있나요? 제가 원낙 초보여서...;; -
미오유
2006.01.03 16:57
!channel은 많이 써요.
<?xml ...?>
이렇게 하면 php연동 사이트에서는 오류가 나벼려요^^;; -
미오유
2006.01.03 16:59
if(empty($channel)) 해도 문제가 있는건 똑같은거 같네요 -
미오유
2006.01.03 17:01
똑같은 문제가 있으면 !channel 쓰는게 낮네요 -
미오유
2006.01.03 17:08
수정완료 -
okoru
2006.01.03 22:22
empty() 함수는 전달 받은 변수가 존재하지 않을 때 TRUE를 리턴합니다. 따라서 URI 쿼리에 "channel"가 없을 때 실행 되게 하죠. 위에도 언급했지만, 비어있는 문자열("" : 따옴표로 썼으나, 내용이 없는)과 숫자 0 등은 FALSE 값을 갖습니다. 따라서 채널 이름에 0을 지정했을 경우엔 원하는 대로 작동이 되지 않죠. 많이 쓰는 방법이 항상 최선의 방법은 아닙니다.
같은 예로 국내의 모든 대형사이트, nzeo를 포함해 대부분의 사이트는 HTML 문법을 전혀 고려하지 않고 만들어졌으며, 덕분에 접근성이 매우 떨어집니다. 물론 왠만한 한국인들은 MS Windows에서 Internet Explorer로 웹 서핑을 하니 잘 모르겠지만, 브라우저는 IE 하나 뿐이 아니죠. 실제로 Firefox라는 브라우저에서는 네이버 블로그에 글도 쓸 수 없답니다. 이 것은 브라우저의 기능이 떨어져서가 아니라 개발자가 웹 표준을 무시하고, IE에만 종속되는 방법으로 코딩 해서 그런 것이죠. 분명 많은 개발자가 야메 HTML로 웹을 만들고 있지만 위 오류 들의 대부분을 잠식 시켜줄 수 있는 방법이 있습니다. XHTML에 대해 조사 해 보세요 :)
프로그램을 할 때엔 확장성을 고려해서 알고 있는 최대한의 예외 상황을 모두 처리 해주는 것이 좋습니다. 방법을 아는 데도 불구하고 "이 방법이 편하지!" 라며 부실한 코드를 배출해 낸다는 것은 개발자로썬 바람직하지 않은 것 같네요. 제 욕심일진 모르겠지만 아름답고 완벽한 코딩을 추구하기 때문에(실력이 되지 못 해 완벽한 코딩을 하진 못합니다만..) 이런 부분에 대해 지적 합니다.
<?xml ... ?>에 대해선 저도 고민 했었습니다. XHTML로 홈 페이지를 작성하기 위해선 반드시 필요한 부분이거든요. 서버에서 ".php" 파일은 PHP 엔진에 돌려 버리며, "<?php"의 단축형인 "<?"를 허용하기 때문에 오류가 나더라구요. 그래서 이렇게 해결 했습니다. 꽤 단순하죠?
<?php
echo "<?xml version="1.0" encoding="utf-8"?>n";
?>
토론은 메신저에서 하는 게 좋을 것 같습니다. okoru@hotmail.com (MSN) -
stargt
2006.01.04 19:31
<?
$page = $HTTP_GET_VARS["page"];
if($page == "main"){
include "main.php";
} elseif($page == "community") {
include "community.php";
} elseif($page == "study") {
include "study.php";
} elseif($page == "project") {
include "project.php";
} elseif($page == "download") {
include "download.php";
} else {
include "main.php";
}
?>
이게 정석 아닌가요 -
okoru
2006.01.04 22:24
stargt //
page는 위와 같이 channel로 쓰겠습니다.
$HTTP_GET_VARS["channel"]와 $_GET["channel"]는 같습니다.
위 프로그램은 URI Query에 channel이 없을 때 index_2.php를 인클루드 하는 반면, stargt 님의 프로그램에선 channel이 main이거나, 다른 정의되지 않은 문자열 이거나, channel이 존재하지 않을 때 main.php를 인클루드 하는군요. 같은 기능을 수행하는데, 이미 if에 쓴 것을 else에 다시 쓸 필요는 없다고 생각합니다. 그저 조건문만 잘 써주면 되겠지요.
그리고 if-elseif-else가 편리한 경우가 있고 switch-case가 편리한 경우가 있지요. 이렇게 한 변수에 대한 값을 테스트 하고자 할 때엔 후자가 낫다고 생각되네요. 애초에 용도가 그러하니깐요. -
미오유
2006.01.06 17:27
왜 메인과 없을경우가 같이 나오는지 참...;;
역시 저런데는 스위치로 하는게 표준이겠죠... -
LuFia
2006.01.31 17:30
아 맨 마지막 문장 웃겨서 넘어질뻔 했 ;ㅇ;
초고속으로 만든거라 .. ㅋㅋ
<?php
$channel = $HTTP_GET_VARS["channel"];
switch($channel) {
case community :
include "community.php";
break;
case study :
include "study.php";
break;
case default :
echo "페이지 찾기 실패 ";
break;
}
?>
이거 아닌가요 ;ㅇ; -
EDENe
2006.05.24 08:06
if(!$channel) $channel = "main";
@include $channel.".php";
만약 없는 채널이면 아무것도 안나타나죠...
아니면 파일이 존재하는지 체크해서 다른 파일을 include 해줘두 되고.. -
이진혁
2007.05.04 23:52
/method=post / ~&channel=$select
또는
if(&chanel = 1;){ $select="community.php"}
include="<dir>.<select>"
- 참고로 php완전 초보 -
M&Gs
2008.02.05 08:46
...
더 간편한거 없나 zbxe처럼 http://????/zbxe/게시판이름/
제목 | 글쓴이 | 날짜 |
---|---|---|
[PHP 동영상강의] 27. 기본적인 환경변수들 [4] | 서기 | 2006.01.03 |
채널을 가장 쉽게 하는법 [17] | 미오유 | 2006.01.02 |
[PHP 동영상강의] 26. 쿠키의 시간제한 [2] | 서기 | 2005.12.26 |
PHP 구문 5가지 표기 방식 [6] | 이강민 | 2005.12.23 |
[PHP 동영상강의] 25. 회원가입처리 / 로그인 구현 [6] | 서기 | 2005.12.16 |
[PHP 동영상강의] 24. 쿠키의 사용 [3] | 서기 | 2005.12.13 |
[PHP 동영상강의] 23. 파일을 이용한 간단한 카운터 제작하기 [4] | 서기 | 2005.12.12 |
[PHP 동영상강좌] 22. 다른 사이트의 특정부위만 가져오기 [7] | 서기 | 2005.12.08 |
[PHP 동영상강좌] 21. 파일을 이용한 메모장 만들기 #3 [3] | 서기 | 2005.12.08 |
[PHP 동영상강좌] 20. 파일을 이용한 메모장 만들기 #2 [6] | 서기 | 2005.12.07 |
[PHP 동영상강의] 19. 파일을 이용한 메모장 만들기 #1 [10] | 서기 | 2005.11.29 |
[PHP 동영상강의] 18. 파일의 생성과 사용 [9] | 서기 | 2005.11.28 |
[PHP 동영상강좌] 17. 배열변수의 사용 [9] | 서기 | 2005.11.25 |
[PHP 동영상강좌] 16. for 반복문의 사용 [8] | 서기 | 2005.11.24 |
[PHP 동영상강좌] 15. 여러개의 파일을 이용한 설문조사 [7] | 서기 | 2005.11.23 |
[PHP 동영상강좌] 14. 여러개의 파일을 거쳐서 값전달하기 [7] | 서기 | 2005.11.23 |
[PHP 동영상강좌] 13. IF문을 이용한 수우미양가 출력하기 [10] | 서기 | 2005.11.23 |
[PHP 동영상강좌] 12. IF문의 사용 [6] | 서기 | 2005.11.23 |
[PHP 동영상강좌] 11. 메일 발송하기 [16] | 서기 | 2005.11.23 |
[PHP 동영상강좌] 10. 그외의 form관련 태그들 [16] | 서기 | 2005.11.22 |