노벨보드 만들기 [6] > 자유게시판

자유게시판

노벨보드 만들기 [6] 정보

기타 노벨보드 만들기 [6]

본문

게시판 만들기 5화

지난번에 넘어간 스크립트 부분을 보도록 하겠습니다.
첫번째 그림에서와 같이 스크립트 내부에서는

  폼이름.입력문이름.입력값

의 형식으로 HTML에서 입력받은(form문 안의 입력문에서) 변수값을 사용할 수 있습니다.
그림에서 이해하기 쉽도록(?) 색이 있는 밑줄로 표시해 두었으므로 참고 하시기 바랍니다.
자바 스크립트 내부에서 사용한 함수에 대해서도 그림에 표시 되어 있습니다.
( 설명이 부실합니다. T.T 이해는 하는데 설명이 어려운... -_-;; )

그림2은 post와 get방식의 차이점을 나타낸것입니다.
전에 말씀 드린데로 이부분은 차후에 하루시간을 정해 연재하겠습니다.
참고 하시라고 그림을 올려봤습니다.


이제 install.ok.php 에 들어 가겠습니다.
소스 분석 위주로 진행하겠으며 예제는 전 시간에 올려 드렸으므로 전시간 첨부파일을 참고 하시기 바랍니다.

<?
PHP 의 시작을 알립니다.
자바 스크립트를 사용할 때 전체 소스를 <script>와 </script>로 감싸는 것을 보셨을 것입니다.
이는 HTML 테그와 구분을 하기 위해 브라우저에 알려 주는 역확을 합니다.
PHP 는 <? 와 ?>로 시작과 끝을 알립니다.

/* DB 설정 파일 확인 */
if( file_exists( "../dbconfig.php" ) ) {
    echo "설정 파일이 이미 있습니다.<br>재설치 하시려면 dbconfig.php 파일 삭제 하세요.";
    exit;
}
if 는 비교하는 명령입니다.
if( $sam == 'sample' ) 라고 하면 $sam 이라는 변수에 들어 있는 값과 문자 sample 를 비교하라는 것입니다.
  ( 참고 : PHP에서 = 은 대입기호로, 등호는 == 을 사용합니다.
    A = B  B의 값을 A에 넣으라
    A == B  B와 A는 같다
    =와 ==를 혼동하시는 분들이 있습니다. 주의를 요합니다. )
file_exists()은 파일이 있는지 확인하는 함수 입니다.
file_exists( "../dbconfig.php" ) 은 엄마 디렉토리에 dbconfig.php 파일이 있는 확인합니다.
있으면 1을 없으면 0을 리턴합니다.
if( file_exists( "../dbconfig.php" ) ) 엄마 디렉토리에서 dbconfig.php 파일이 있는지 확인하고 있다면 다음 실행
if문 바로 뒤에오는 내용은 참(1)일 때 실행 됩니다. { } 로 감싸면 어려 명령을 실행 할 수 있습니다.
exit 는 현재 에서 빠져 나가라는 명령입니다.

if( file_exists( "../dbconfig.php" ) ) {
    echo "설정 파일이 이미 있습니다.<br>재설치 하시려면 dbconfig.php 파일 삭제 하세요.";
    exit;
}
dbconfig.php파일이 있는지 확인하고 있으면 메세지를 출력하고(echo명령) 나가라(exit) 하는 명령입니다.
여기서 dbconfig.php는 앞으로 게시판 사용시 DB에 필요한 자료로 install_ok.php로 오기전 index.php에서 입력 받은 값이 저장되어 있는 파일입니다.
우리는 처음 하는 것이므로 당연히 파일이 없습니다.
if문은 실행되지 않으므로 다음으로 넘어 갑니다.
재설치 방지용으로 사용합니다.
재설치를 강제로 해 줄경우 dbconfig.php 파일을 지우고 실행하면 됩니다.

/* 퍼미션 검사 */
if( !( ( fileperms( "../" ) == 16839 ) || ( fileperms( "../" ) == 16895 ) ) ) {
    echo "<title>Novel-Board Install : permission setting</title>";
    echo "설치 폴더의 권한이 707 또는 777이 아닙니다.<br>권한을 777로 수정 후 설치하세요.";
    exit;
}
퍼미션 부분은 "게시판 만들기"라는 제목으로 제가 올린 글을 참고 하시기 바랍니다.

?>
PHP 소스 닫기, 프로그램 종료 아님, HTML 소스를 쓰기 위해 잠시 닫음

<meta http-equiv='content-type' content='text/html; charset=euc-kr'>
<title>Novel-Board Install : setting saving</title>
<style>body, td, p, input, button, textarea, select { color:#222222; font-family:굴림; font-size:12px; }</style>
이부분은 HTML 소스로 페이지를 한글로 설정하고 브라우저 상단에 나올 제목을 설정하고 앞으로 화면에 출력될 스타일을 설정합니다.

<?
PHP 소스를 쓰기 위해 다시 PHP를 쓰겠다고 알림

/* 설치 경로 */
$root = $DOCUMENT_ROOT."/";
$base = substr($SCRIPT_NAME, 1);
$base = substr($base, 0, strlen($base) - strlen(strstr($base, "/")))."/";
$path = $root.$base;
이부분은 게시판이 설치된 위치를 자동으로 찾아내는 소스인데 참고하기라고 넣었습니다.
절대 주소를 사용할 때 사용하는데 나중에 사용할지 아님 상대주소로 할지는 아직 미정입니다.

다음으로 각 테이블들이 보입니다.
이것은 전에 설명한 적이 있으므로 넘어갑니다.

/* mysql_query 와 mysql_error 를 한꺼번에 처리 */
function sql_query( $sql ) {
    global $connect;
    $result = mysql_query( $sql, $connect ) or die( "<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() );
    return $result;
}
이 부분은 그누보드를 참고 했습니다.
DB 데이타를 처리하기 위한 명령을 입력받고 에러인 경우 에러 메세지를 출력하는 함수 입니다.

/* 문자를 암호화 */
function pass_make( $nm_passwd ) {
    $num = crypt( md5( '$nm_passwd' ), chr( mt_rand( 176, 223 ) ).chr( mt_rand( 176, 223 ) ) );
    return $num;
}
이부분은 지난 연재에서 다루었습니다.
앞 연재물들을 보시기 바랍니다.

/* MySQL 접속 */
$connect = @mysql_connect( $host_name, $db_user_id, $db_pass )
    or die( "MySQL 접속 에러 !!<br>MySQL 접속 정보를 다시 확인해 보시기 바랍니다.<p><input type=button value=' 뒤 로 ' onclick='history.go(-1);'>" );
@mysql_select_db($db_name, $connect)
    or die("MySQL DB 에러 !!<br>MySQL DB를 확인하십시오.<p><input type=button value=' 뒤 로 ' onclick='history.go(-1);'>");
역시 앞 연재에서 다루었습니다.




오늘은 제가 졸린관계로(^^;;) 이만 줄이고 내일(아니 오늘인가?)은 우리가 만든 테이블을 DB에 저장하는 방법에 대해 이야기를 진행해 나가도록 하겠습니다.
그럼 좋은밤 되시기 바랍니다.
추천
0

댓글 1개

전체 199,690 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT