segioHelp(All)/쎄지오도움말 4.0(ko)



5.2 확장개발-PHP
인쇄
 
2009-07-09 19:02:41
조회:29160
답글지움수정 아랫글 목록 윗글

5.2 확장개발-PHP



 쎄지오는 "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_USERPERM 사용자의 특별권한 ; 웹마스터("master") or 인트라셀 소유자("owner")

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가 작동되지 않을 수 있습니다. 설정파일과 라이브러리의 차이에 기인한 것으로 제거 후 다시 설치하여야 합니다.

답글지움수정인쇄 아랫글 목록 윗글
댓글달기
이름  비밀번호
Table for TextEditor

segioHelp(All)의 게시물 목록
번호 파일 글제목 일시 조회
58 gif 파일 ticon그룹웨어 관리 12-08-01 33148
57 gif 파일 ticon자원(물품) 예약 관리 12-01-13 28587
56 png 파일 ticon그룹웨어 게시판 추가 11-11-17 35397
55 gif 파일 ticon업무보고 11-08-24 30382
54 gif 파일 ticon메일 프로그램에서 POP3/SMTP 설정 11-07-07 37437
53 gif 파일 ticonSMS 일괄전송 11-06-28 30504
52 gif 파일 ticon일정관리 11-04-14 31724
51 png 파일 ticon모바일 POP3 설정(안드로이드) 11-02-11 33016
50 gif 파일 ticon근태관리 사용자 도움말 11-01-10 30952
49   ticon모바일 웹제작 11-01-04 31661
48 png 파일 ticon모바일 POP3 설정(아이폰/아... 10-11-19 29336
47 gif 파일 ticon로그인 10-11-16 35141
46 jpg 파일 ticon사용기록 보기(로그리포트) 10-11-09 31745
45 png 파일 ticon6.1 게시판 환경설정 [2] 10-06-23 37290
44 png 파일 ticonSEGIO FTP 10-05-24 34813
43   ticon웹 게시판 10-03-13 40040
42 gif 파일 ticon10.4 CMS개요 09-07-21 44694
41 jpg 파일 ticon4.4 환경설정 09-07-17 43469
40 gif 파일 ticon8.7 사용자관리 09-07-13 39120
39 jpg 파일 ticon플래시쇼 관리2 09-07-10 32469
38 jpg 파일 ticon플래시쇼 관리1 09-07-10 32270
37 gif 파일 ticon10.2 메뉴관리 09-07-10 38539
36 gif 파일 ticon10.1 프론트페이지 09-07-10 31776
35 jpg 파일 ticon9.4 업무용 메신저 09-07-10 27116
34 png 파일 ticon업무용 메신저 09-07-10 42072
33 gif 파일 ticon명함관리 09-07-10 40830
32 gif 파일 ticon업무진행 09-07-10 39389
31 gif 파일 ticon전자결재 09-07-10 58711
30   ticon8.6 자바환경설정 09-07-10 33744
29   ticon8.4 웹쪽지 09-07-10 36539
28   ticon8.3 웹메신저 09-07-10 34065
27 jpg 파일 ticon8.2 웹메일 서비스 09-07-10 40483
26 jpg 파일 ticon8.1 사용자 웹서비스 09-07-10 33805
25   ticon7.8 커뮤니티 게시판관리 09-07-10 43033
24   ticon7.7 커뮤니티 회원관리 09-07-10 42769
23 jpg 파일 ticon7.6 사용자 환경설정 09-07-10 29668
22 jpg 파일 ticon7.1 커뮤니티 서비스 09-07-10 28669
21 jpg 파일 ticon6.3 게시판 관리와 응용 09-07-09 46982
20 jpg 파일 ticon매크로 문서 구성(macro) 09-07-09 42467
19 gif 파일 ticon5.4 확장개발-JSP 09-07-09 37585
18   ticon5.3 확장개발-사용자 관리 09-07-09 30111
17 jpg 파일 ticon5.2 확장개발-PHP 09-07-09 29160
16 jpg 파일 ticon5.1 확장개발-CGI 바이너리 09-07-09 29461
15 jpg 파일 ticon4.3 사용기록보기 09-07-09 28001
14 jpg 파일 ticon4.2 사용자관리 09-07-09 32472
13 jpg 파일 ticon4.1 인트라셀이란 09-07-09 40656
12 jpg 파일 ticon4.5 웹메일 설정 09-07-09 34780
11 jpg 파일 ticon3.3 웹메일 구성 09-07-09 33179
10 jpg 파일 ticon2.5 웹편집기 09-07-09 32849
09 jpg 파일 ticon2.4 웹 디렉토리 09-07-09 36529