![]() |
쎄지오는 "UTF-8" 기반으로 동작하므로 PHP로 작성된 응용 어플리케이션도 "UTF-8"기반으로 제작되어야 합니다 (별도의 페이지로 동작하는 경우 UTF-8이 아니어도 동작합니다). PHP 응용 어플리케이션의 실행결과로 HTML문서를 출력하면 쎄지오는 이에 대하여 웹필터링을 진행합니다. PHP 개발환경을 이용하여 회원관리, 게시판관리, 웹빌더마법사 등의 부가적인 어플리케이션을 개발할 수 있습니다.
1) PHP 정보표시 |
맨위로 |
아파치에서와 마찬가지로 다음과 같은 방법에 의해 PHP 설정 값을 확인할 수 있습니다. 쎄지오에 탑재된 PHP는 기본적으로 5 버전입니다.
<html> <head> <title>phptest</title> </head> <body> <? phpinfo(); ?> </body> |
위와 같은 내용을 포함한 PHP문서는 실행되어 다음의 그림과 같은 결과로 나타납니다.
위 그림은 출력 부분중 일부만을 잘라서 삽입한 것입니다. 위의 구문을 포함한 PHP스크립트를 아무런 권한 없이 php문서로 저장하여 웹문서에 포함시키면 보안문제가 야기될 수 있습니다.
변수명 |
전달 자료 |
REQUEST_METHOD |
서버요청 방법( ex) GET or POST ) |
HOME |
인트라셀의 홈디렉토리 |
DOCUMENT_ROOT |
Html 문서의 홈디렉토리 |
REMOTE_USER |
사용자의 아이디 |
REMOTE_HOST |
요청한 사용자의 호스트 이름 |
REMOTE_ADDR |
요청한 사용자의 IP |
REMOTE_USERLEVEL |
사용자의 등급( ex: 0 ~ 9 ) |
REMOTE_LOCATIONLEVEL |
로케이션에서의 등급(동호회, 사용자공간) |
DISK_QUOTA |
사용자별로 사용가능한 용량 |
USERHOME_QUOTA |
사용자의 홈디렉토리 용량 |
USERBOARD_MAX |
사용자가 소유 가능한 게시판수 |
REMOTE_USERNAME |
사용자 별명 |
REMOTE_REALNAME |
사용자 실명 |
SERVER_NAME |
서버 이름 |
HTTP_HOST |
해당 인트라셀의 도메인명 |
INTRACELL |
인트라셀의 번호 |
위 환경변수 값들은 아래와 같은 코드로 확인이 가능합니다.
<? system("env"); ?> |
2) 인증(Authorization) 공유 |
맨위로 |
로그인하지 않은 사용자의 경우 0등급, 로그인한 사용자는 1등급 이상의 등급을 갖게 되므로 등급을 이용하여 손쉽게 인증여부를 처리할 수 있습니다. 다음은 "REMOTE_USERLEVEL"을 이용하여 인증 여부를 처리하는 간단한 예입니다.
<? if($REMOTE_USERLEVEL > 0){ echo "로그인 되었습니다<br />"; echo $REMOTE_USERNAME ."님 환영합니다."; } else { echo "로그인 후 사용하십시오"; } ?> |
REMOTE_USERLEVEL이외에도 REMOTE_USER(사용자 아이디), REMOTE_USERNAME(사용자 별명), REMOTE_REALNAME(사용자 실명)등의 환경변수 값을 이용하여 별도의 인증과정없이 좀 더 손쉬운 처리가 가능합니다. 위의 스크립트는 쉘스크립트를 이용하여 다음과 같이 표현 가능합니다.
$#if u.conn#; 로그인되었습니다. $#u.name#;님 환경합니다. $#else#; 로그인후 사용하십시오. $#fi#; |
3) 쉘 템플릿 적용 |
맨위로 |
단일프레임으로 HTML문서를 구성할 때, PHP로 작성된 애플리케이션에 다음의 코드를 삽입하면 PHP코드에 HTML을 삽입하는 작업 없이 템플릿을 효과적으로 적용할 수 있습니다.
1. echo "$#shell,=#;"; → 상속쉘을 적용할 경우 2. echo "$#shell,/#;"; → 기본쉘을 적용할 경우 3. echo "$#shell,/main.shell#;"; → 지정쉘을 적용할 경우 |
아래 그림은 PHP코드에 쉘을 적용한 예입니다.
아래 그림은 PHP로 작성된 제로보드에 HTML쉘을 적용한 예입니다. 일반적인 공개 PHP 프로그램은 "UTF-8"의 문자셋이 아닌 경우가 있는데 HTML 쉘문서와 조합되는 과정에서 문제가 발생할 수 있습니다. 필요에 따라서는 "UTF8"문자셋으로 전환해주어야 합니다.
웹관리도구의 “새파일”편집 창을 띄워+ 카피한 후 저장하면 자동으로 UTF-8로 저장됩니다. "$#l.shell#;"구문을 사용하여 PHP로 작성된 스크립트 간에 쉘 레이아웃이 유연하게 적용되도록 할 수 있습니다.
3. echo "<a href=\"/view_cont.php?shell=$#l.shell#;\">콘텐츠보기</a>"; → 작동중인 쉘을 호출쉘로 함 |
위와 같은 기법은 CGI기반의 프로그래밍에서도 동일하게 사용할 수 있습니다.
4) DataBase 연동 |
맨위로 |
MySQL 4.1이상 버전의 경우 모든 저장 데이터를 유니코드(UTF-8)로 저장합니다. 따라서 하위 버전(MySQL4.1이하)에서 사용하던 Web Application 및 DataBase 데이터를 유니코드로 변경하는 별도의 작업이 필요합니다. 다음은 PHP를 이용하여 DB에 접속하는 예입니다.
<? $c0nn=mysql_pconnect("localhost", "segio" , "segio"); if(!$conn) { echo "Mysql Connect Fail"; } else { echo "Mysql Connect Ok"; } ?> |
쎄지오는 기본 문자셋으로 UTF8을 채택합니다. 호환을 위해 다음과 같은 방법으로 MySQL의 문자셋을 "UTF8"로 지정합니다.
ex) mysql_query("SET NAMES UTF8" , $conn); |
5) 상위 디렉토리 접근제한 |
맨위로 |
하나의 서버에서 다수의 인트라셀을 운영하는 경우 인트라셀간의 간섭을 피하기 위하여 PHP에서 상위디렉토리에 접근하지 못하도록 제한하고 있습니다. 인트라셀 홈페이지에 존재하는 PHP 파일의 경우 인트라셀 홈디렉토리까지 접근권한이 주어지며, 사용자공간에 있는 PHP파일의 경우 사용자의 홈디렉토리까지만 접근권한이 부여됩니다. 동일한 방법으로 동호회에서는 동호회의 홈디렉토리 영역까지만 접근이 가능합니다. 사용자공간과 동호회공간은 모두 인트라셀 하위 디렉토리에 위치하게 되므로 일반 HTML공간의 PHP프로그램은 사용자공간 및 동호회 공간에 대해 접근가능하기 때문에 홈페이지 마법사 등과 같은 어플리케이션을 구현할 수 있습니다. 단 사용자공간 및 동호회 공간의 PHP파일은 인트라셀이나 다른 사용자공간이나 동호회 공간에 접근권한을 갖지 않습니다.
6) 기타 |
맨위로 |
기존 서버에 Apache와 PHP가 Source를 컴파일 한 형식으로 설치된 경우 쎄지오의 PHP가 작동되지 않을 수 있습니다. 설정파일과 라이브러리의 차이에 기인한 것으로 제거 후 다시 설치하여야 합니다.
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
번호 | 파일 | 글제목 | 작성자 | 일시 | 조회 |
---|---|---|---|---|---|
61 |
![]() |
![]() |
케이시크 | 09-07-21 | 149552 |
60 |
![]() |
케이시크 | 09-07-17 | 184984 | |
59 |
![]() |
![]() |
관리자 | 09-07-14 | 186149 |
58 |
![]() |
![]() |
관리자 | 09-07-14 | 185699 |
57 |
![]() |
![]() |
관리자 | 09-07-14 | 184846 |
56 |
![]() |
![]() |
관리자 | 09-07-14 | 167661 |
55 |
![]() |
![]() |
관리자 | 09-07-14 | 201862 |
54 |
![]() |
![]() |
관리자 | 09-07-14 | 205305 |
53 |
![]() |
![]() |
관리자 | 09-07-13 | 184008 |
52 |
![]() |
![]() |
sysop | 09-07-10 | 193454 |
51 |
![]() |
![]() |
sysop | 09-07-10 | 191457 |
50 |
![]() |
![]() |
sysop | 09-07-10 | 166451 |
49 |
![]() |
![]() |
sysop | 09-07-10 | 191708 |
48 |
![]() |
![]() |
sysop | 09-07-10 | 462465 |
47 |
![]() |
![]() |
sysop | 09-07-10 | 196806 |
46 |
![]() |
![]() |
sysop | 09-07-10 | 188399 |
45 |
![]() |
![]() |
sysop | 09-07-10 | 201150 |
44 |
![]() |
![]() |
sysop | 09-07-10 | 183845 |
43 |
![]() |
sysop | 09-07-10 | 179811 | |
42 |
![]() |
sysop | 09-07-10 | 188672 | |
41 |
![]() |
sysop | 09-07-10 | 178806 | |
40 |
![]() |
sysop | 09-07-10 | 186047 | |
39 |
![]() |
sysop | 09-07-10 | 377217 | |
38 |
![]() |
![]() |
sysop | 09-07-10 | 256560 |
37 |
![]() |
![]() |
sysop | 09-07-10 | 207380 |
36 |
![]() |
sysop | 09-07-10 | 202766 | |
35 |
![]() |
sysop | 09-07-10 | 209694 | |
34 |
![]() |
![]() |
sysop | 09-07-10 | 208363 |
33 |
![]() |
sysop | 09-07-10 | 711350 | |
32 |
![]() |
![]() |
sysop | 09-07-10 | 215751 |
31 |
![]() |
![]() |
sysop | 09-07-10 | 217247 |
30 |
![]() |
![]() |
sysop | 09-07-10 | 199089 |
29 |
![]() |
sysop | 09-07-10 | 191431 | |
28 |
![]() |
![]() |
sysop | 09-07-09 | 206441 |
27 |
![]() |
![]() |
sysop | 09-07-09 | 196767 |
26 |
![]() |
![]() |
sysop | 09-07-09 | 338866 |
25 |
![]() |
![]() |
sysop | 09-07-09 | 195935 |
24 |
![]() |
sysop | 09-07-09 | 196431 | |
23 |
![]() |
sysop | 09-07-09 | 196908 | |
22 |
![]() |
![]() |
sysop | 09-07-09 | 176812 |
21 |
![]() |
![]() |
sysop | 09-07-09 | 273842 |
20 |
![]() |
![]() |
sysop | 09-07-09 | 183902 |
19 |
![]() |
![]() |
sysop | 09-07-09 | 195522 |
18 |
![]() |
![]() |
sysop | 09-07-09 | 205064 |
17 |
![]() |
![]() |
sysop | 09-07-09 | 1241677 |
16 |
![]() |
![]() |
sysop | 09-07-09 | 598456 |
15 |
![]() |
![]() |
sysop | 09-07-09 | 228475 |
14 |
![]() |
![]() |
sysop | 09-07-09 | 231462 |
13 |
![]() |
![]() |
sysop | 09-07-09 | 553061 |
12 |
![]() |
![]() |
sysop | 09-07-09 | 221209 |
11 |
![]() |
sysop | 09-07-09 | 394210 | |
10 |
![]() |
![]() |
sysop | 09-07-09 | 196103 |
09 |
![]() |
![]() |
sysop | 09-07-09 | 222752 |
08 |
![]() |
![]() |
sysop | 09-07-09 | 248556 |
07 |
![]() |
![]() |
sysop | 09-07-09 | 329243 |
06 |
![]() |
![]() |
sysop | 09-07-09 | 333480 |
05 |
![]() |
![]() |
sysop | 09-07-09 | 220874 |
04 |
![]() |
![]() |
sysop | 09-07-09 | 229840 |
03 |
![]() |
![]() |
sysop | 09-07-09 | 438595 |
02 |
![]() |
![]() |
sysop | 09-07-09 | 812509 |
01 |
![]() |
![]() |
sysop | 09-07-09 | 190282 |