회원 로그인시만 사이트 이용 가능하게 하려는데 오류 발생

회원 로그인시만 사이트 이용 가능하게 하려는데 오류 발생

QA

회원 로그인시만 사이트 이용 가능하게 하려는데 오류 발생

본문

회원가입쪽을 제외한 나머지 페이지에 접속하려고 할 때, bbs/login.php 로 이동시켜려 합니다.

그누에 어딘가에서 팁을 참고해서 만들었는데 보니까 토큰 에러, 캡챠 생성 안되는 오류가 있습니다만.

여기서 예외처리를 추가해야할 부분이 있을까요?

 


<?php
if (!defined('_GNUBOARD_')) exit;
//로그인 안해도 되는 페이지 세팅
$temp_array = Array();
$temp_array[] = "login.php";
$temp_array[] = "login_check.php";
$temp_array[] = "register.php";
$temp_array[] = "register_form.php";
$temp_array[] = "register_form_update.php";
$temp_array[] = "password_lost.php";
$temp_array[] = "password_lost2.php";
$temp_array[] = "password_lost3.php";
$temp_array[] = "kcaptcha_image.php";
$temp_array[] = "popup.php";
$pattern = '';
foreach($temp_array as $v){
  $pattern .= str_replace('.', '\.', $v) . '|';
}
$pattern = preg_replace("`\|$`", '', $pattern);
//로그인 페이지, 회원가입, 아이디비번 찾기를 제외한 전 페이지 로그인해야만 들어올수 있게 하기
if(!preg_match("`(" . $pattern . ")$`", basename($_SERVER['PHP_SELF'])) && ($is_member == false || empty($member['mb_id']))){
    goto_url(G5_URL.'/bbs/login.php');
}
?>

이 질문에 댓글 쓰기 :

답변 3

에러내용을 알아야 합니다.

추가로 if 조건도 너무 복잡한 느낌이 있습니다.

이런 케이스는 정규표현식 보다는

in_array: https://www.php.net/manual/en/function.in-array

array_search: https://www.php.net/manual/en/function.array-search.php

등의 함수로 더 간결한 표현이 가능합니다.


<?php
$temp_array = array(
    'login.php', 
    'login_check.php', 
    'login.php',
    'login_check.php',
    'register.php',
    'register_form.php',
    'register_form_update.php',
    'password_lost.php',
    'password_lost2.php',
    'password_lost3.php',
    'kcaptcha_image.php',
    'popup.php'
);
if (in_array(basename($_SERVER['PHP_SELF']), $temp_array) == false) {
    goto_url(G5_URL.'/bbs/login.php');
}
?>

가장 간단한게 구현하는 방법은,

접근하지 못하게 하려는 페이지 상단에


if(!$is_member){
    alert('회원만 이용할 수 있습니다.', g5_url);
}

이렇게 쓰면 됩니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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