login.php 코드 질문

login.php 코드 질문

QA

login.php 코드 질문

답변 1

본문

안녕하세요 저는 그누보드 코드를 공부중입니다.

그누보드가 어떻게 동작하는지 코드를 보면서 로직을 공부하고 있습니다.

지금은 login.php를 하는 중인데요 모르는게 너무 많아서 질문드립니다. 

 


$url = strip_tags($_GET['url']);
 
// url 체크
check_url_host($url);

여기서 $_GET['url']는 어디서 받아오는지,
check_url_host($url);는 도대체 무슨 기능을 하는지 모르겠습니다.

 


if ($is_member) {
    if ($url)
        goto_url($url);
    else
        goto_url(G5_URL);
}

여기선 $is_member를 사용하는데 저건 common.php에서 회원, 비회원 구분을 하는 코드에서 선언되었는데


$is_member = $is_guest = false;
$is_admin = '';
if ($member['mb_id']) {
    $is_member = true;
    $is_admin = is_admin($member['mb_id']);
    $member['mb_dir'] = substr($member['mb_id'],0,2);
} else {
    $is_guest = true;
    $member['mb_id'] = '';
    $member['mb_level'] = 1; // 비회원의 경우 회원레벨을 가장 낮게 설정
}

조건문 안에 있는 mb_id는 db에 칼럼 같은데 이 데이터를 어디서 가지고 오는건가요?

 

마지막으로 그누보드 코드를 공부할 때 알려주실 팁이 있으면 알려주세요!

이 질문에 댓글 쓰기 :

답변 1

1) /bbs/login.php?url=/bbs/board.php?bo_table=notice 와 같은 형태로 로그인 페이지가 호출되었다면,

$_GET['url'] 변수에 저장된 값은 "/bbs/board.php?bo_table=notice" 입니다.

 

로그인이 필요한 페이지에서, 로그인 페이지로 이동 후 -> 로그인이 되면.. 해당 페이지로 다시 되돌아오기 위해 사용된 방법이라고 보면 됩니다.

 

2) check_url_host() 는 php함수가 아닌 사용자 정의 함수입니다.

/lib/common.lib.php 에 check_url_host()가 정의되어 있으니 살펴볼 수 있습니다.

대략 $_GET['url'] 변수에 타 도메인이 들어가있는 지 등의 보안적인 문제를 체크하는 함수입니다.

 

3) 상단의 include_once('./_common.php'); 가 있는데.. 그누보드 루트의 common.php 를 가리킵니다.

그누보드 루트의 common.php 에서 정의된 $is_member 변수를 login.php 에서도 사용할 수 있습니다.

 

4) /common.php 에

$member = get_member($_SESSION['ss_mb_id']); 구문이 있습니다.

/lib/common.lib.php 에 보면 get_member() 함수를 살펴볼 수 있고,

get_member() 함수에서 현재 로그인된 회원의 DB 내용을 저장한다는 것을 확인할 수 있습니다.

 

5) ※ https://homzzang.com/b/free-1458 , https://youtu.be/FWW4g54jnJQ

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 123,592
© SIRSOFT
현재 페이지 제일 처음으로