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

자유게시판

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

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

본문

게시판 만들기 9화


이번시간에는 기본설정파일인 config.php 에 대해 알아 보겠습니다.
config.php 파일은 게시판을 표시하거나 관리화면으로 들어 갈때 가장 먼저 실행되는 파일로 노벨보드에서 사용하는 기본설정들이 들어 있습니다.
정확히 하는 일은 아래와 같습니다.

  1. 환경변수 설정
  2. 접속자가 회원인지 관리자인지 손님인지 판단
  3. 회원/관리자일 경우 회원정보를 전달
  4. 기본 함수 정의

config.php는 실행전에 $nbbs_id(회원아이디) 와  $nbbs_pw(회원암호) 두변수의 값을 전달 받습니다.
변수값이 없으면 손님으로 판단합니다.
변수값을 확인해 일반회원인지 관리자 인지 판단합니다.

환경변수와 기본함수는 앞의 연재들에서 다루었던 내용들이므로 여기서는 따로 설명하지 않겠습니다.
자세한 소스는 예제 파일을 보시면서 이해 하시면됩니다. ( 예제 파일은 노벨보드 만들기 [8]에 올려져 있습니다. )

여기서는 회원을 판단하는 방법에 대해 알아 보도록 하겠습니다.

PHP에서는 여러 파일에서 같은 변수 값을 전달하고 받기 위해 쿠키나 세션등을 많이 활용합니다.
쿠키 : 클라이언트 컴퓨터 즉 홈페이지에 접속하는 접속자 컴퓨터에 데이타를 저장하는 방식입니다.
  장점 : 페이지를 전환할때 마다 로그인 상태를 유지해 주며 서버 컴퓨터의 부하를 줄여줍니다.
  단점 : 사용자 컴퓨터와 서버 컴퓨터의 시간차로 인한 에러가 발생합니다. 보안에 취약합니다.
세션 : 서버 컴퓨터 즉 홈페이지를 운영하는 컴퓨터에 데이타를 저장하는 방식입니다.
  장점 : 페이지를 전환할때 마다 로그인 상태를 유지해 주며 시간차이로 인한 에러가 없습니다.
  단점 : 쿠키에 비해 부하가 많이 걸립니다. ( 그러나 거의 무시해도 좋을 정도 )

노벨보드에서는 세션을 사용합니다.

/* 세션 디렉토리 설정 */
@session_save_path( $path[session] );
@session_cache_limiter('nocache, must_revalidate');
session_set_cookie_params(0,"/");

세션 디렉토리의 위치를 설정해 주는 소스입니다.
$path[session] 은 세션을 저장할 디렉토리 위치입니다.

session_save_path( 경로 )
세션 경로(위치) 설정
반드시 세션 시작전 정의 되어야 합니다.
세션이 시작하면 현재 상태를 유지 하기 때문에 시작이후 지정해 주어도 세션 시작시의 상태를 유지하기 합니다. ( 주의 요망 )

session_cache_limiter( 캐시제한 입력문 )  // 잘모름 ^^;;
세션의 캐쉬 제한

session_set_cookie_params( 유지시간, 경로 )
세션이 사용하는 쿠키의 파라미터 설정
유지시간이 0이면 브라우져 종료시 까지 유지

/* 세션 시작 */
@ob_start();
@session_start();

세션을 시작하는 부분입니다.
ob_start()은 출력 버퍼링을 시작하는 함수입니다.
session_start()은 세션을 시작하는 함수로 시작전 출력이 있으면 에러가 납니다.
이것을 방지하기 위해 ob_start()함수를 사용하는데 이 함수는 출력될 메세지를 버퍼에 저장후 페이지가 모두 실행된 이후에 한번에 출력해 주게 합니다.
노벨보드에서는 ob_start() 함수를 실행할 필요가 없으나( 세션시작전 출력이 없다 ) 만약을 위해 넣은 부분입니다.

자 이제 세션이 시작되었습니다.
세션을 사용할 때 주의할 점이 있습니다.
세션 변수와 PHP 의 변수명을 같은 것을 사용하지 마시기 바랍니다.
일반 PHP변수라도 세션 변수와 이름이 같으면 모두 세션 변수로 처리 됩니다. ( 주의 요망 )

/* 입력받은 로그인 정보 세션에 저장 */
if( $nbbs_id !='' && $nbbs_pw !='' ) {
    $log_id = $nbbs_id;
    $log_pw = $nbbs_pw;
    session_register( log_id );
    session_register( log_pw );
}

입력받은 아이디나 암호가 비어있지 않다면( 입력이 있다면 ) 입력받은 아이디와 암호를 세션에 저장합니다.
$nbbs_id 와 $nbbs_pw 변수는 입력받은 아이디와 암호가 저장되어 있는 변수입니다.
$log_id와 $log_pw 변수는 세션 변수로 사용하기 위해 만든 변수입니다.

session_register( 변수명 );
세션 변수를 정의 합니다. 앞에서 만들어준 세션변수로 사용하기 위해 만든 변수에서 $를 제외한 변수명을 입력하면 그 이름의 세션 변수가 만들어 집니다.
$변수 와 변수는 같습니다.
전자는 PHP 변수, 후자는 세션 변수이나 같은 이름이므로 둘다 세션변수로 처리됩니다.
즉 같은 변수입니다.
세션변수가 정의 되면 같은 이름의 PHP변수도 존재하므로 위에서 주의 요망에 말씀드린데로 같은 이름의 PHP 변수를 만들면 않됩니다. ( 이미 있으므로 문제가 발생하게됨 )

DB에 접속 -> 이부분은 전에 연재 했으므로 생략

$default = @mysql_fetch_array( sql_query( "select * from $cfg[nb_default]" ) );
$member = @mysql_fetch_array( sql_query( "select * from $cfg[nb_member] where nm_id = '$log_id' " ) );

기본설정과 현재 로그인된 회원의 데이타를 가져옵니다.
로그인 상태가 아니라면 회원 데이타는 비워져 있게됩니다.

다음엔 로그인한 사람이 회원/손님/관리자 인지 구별하는 소스가 들어 가게되지만..... 다음시간에 계속 -_-;;


다음 시간에 뵙겠습니다. 졸려서~ 퍽~퍽! 돌던지지 마여~~~~
추천
0

댓글 0개

전체 195,334 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

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