채택완료

회원가입 로직 순서 아시는 분 계실까요?

메인과 회원가입 로그인관련 페이지 외에 는 비회원 접근이 안되도록 하고싶습니다.

sir.kr 내에서 유사 코드를 찾아 작업 진행중인데요

Copy
<?php

// ============================================================================================

// 마스타팩 extend

// 로그인해야 웹사이트 사용가능하게 하기

// ============================================================================================

$current_page = basename($_SERVER['SCRIPT_NAME']);

 

// 비회원이 접근 가능한 페이지들을 배열에 저장

$public_pages = [

    'login.php',

    'register.php',

    'register_form.php',

    'register_form_update.php',

    'register_result.php',

    'email_certify.php',

    'register_form_update_mail1.php',

    'register_form_update_mail2.php',

    'register_form_update_mail3.php'

    // 'etc.php', // 다른 페이지가 있다면 여기에 추가

];

 

// 방문자가 비회원이고, 현재 페이지가 public_pages 배열에 없으면 리다이렉트

if ($is_guest && !in_array($current_page, $public_pages)) {

    alert("로그인 후 이용 가능합니다.", G5_BBS_URL.'/login.php');

}

$no_show_header_and_footer = in_array($current_page, $public_pages);

?>

위 코드를 적용하고 회원가입 테스트 중인데. 뭐때문인지

register_form_update.php 여기에서 로그인 후 이용가능하다는 경고창과 함께

db에 insert가 안되는데 누락된 파일이 있을까요?

소셜로그인 이메일인증은 사용하지 않고 있습니다.

그냥 그누보드 기본설치 파일 기준입니다.

gnuboard5.6.22.zip 으로 설치하였습니다

|

답변 2개 / 댓글 6개

채택된 답변
+20 포인트
2025-09-23 (화) 17:33:48

login_check.php 파일이 누락된 것 같습니다.

답변에 대한 댓글 5개

이 질문 보고 저도 궁금해서 테스트 해보고 있었는데, 신기한 현상을 경험했어요.
/extend/zzz.php 파일 생성 후, 아래 코드로 확인한 내용입니다.

<?php
$current_page = basename($_SERVER['SCRIPT_NAME']);

// 비회원이 접근 가능한 페이지들을 배열에 저장
$allow_pages = [
'login.php',
'login_check.php',
'register.php',
'register_form.php',
'register_form_update.php',
'register_result.php',
'email_certify.php',
'register_form_update_mail1.php',
'register_form_update_mail2.php',
'register_form_update_mail3.php'
// 'etc.php', // 다른 페이지가 있다면 여기에 추가
];

// 방문자가 비회원이고, 현재 페이지가 allow_pages 배열에 없으면 리다이렉트
if ($is_guest && !in_array($current_page, $allow_pages)) {
alert("로그인 후 이용 가능합니다.", G5_BBS_URL.'/login.php');
}



코드는 이상 없어 보이는데, 캡챠가 엑박 뜨더라구요. 원인이 뭔지 궁급합니다.
alert 라인을 주석처리하면 다시 엑박이 보입니다. goto_url 써도 마찬가지더라구요.
$is_kcaptcha = strpos($_SERVER['SCRIPT_NAME'], '/plugin/kcaptcha/') !== false;

if ($is_guest && !in_array($current_page, $allow_pages) && !$is_kcaptcha) {
alert("로그인 후 이용 가능합니다.", G5_BBS_URL.'/login.php');
}
2025-09-23 (화) 18:46:43
확인해 본 결과 비회원 접근 가능한 페이지에,
'kcaptcha_image.php' 포함이 안되어 있어서 생긴 현상이었습니다.
두 분 덕분에 궁금증 해결했습니다. 감사합니다.
왜 안 되는 걸까 하고 두어시간 보냈네요. ㅡㅡ;;
오 신비님의 질문 덕분에 좋은 정보 얻어갑니다. 마르스컴퍼니님도 감사드립니다!

다음처럼 하세요

1. extend/aa_permission.php 만들기 <== 화일명이 사전 순 앞쪽이 되도록하면 extend 다른 화일 include하기전 먼자 실행 됩니다

2. 코드

$selffile = basename($_SERVER['PHP_SELF']);
if( !$is_member && strpos( $selffile, 'index') ===false && strpos( $selffile, 'login') ===false && strpos( $selffile, 'register') ===false && strpos( $selffile, 'cert') ===false && strpos( $selffile, 'kcaptcha') ===false && strpos( $selffile, 'password') ===false  && strpos( $selffile, 'ajax') ===false    ){

    include_once(G5_PATH."/extend/version.extend.php");

     alert('로그인 후 이용 가능 합니다' , G5_URL);

}
 

답변에 대한 댓글 1개

ChatGPT가 아래처럼 작성하면 더 좋다고.... 맞나요? ㅎ

<?php
$selffile = basename($_SERVER['SCRIPT_NAME']);

if (
!$is_member &&
!preg_match('/(login|register|cert|kcaptcha|password|ajax)/i', $selffile)
) {
include_once(G5_PATH."/extend/version.extend.php");
alert('로그인 후 이용 가능 합니다', G5_BBS_URL.'/login.php');
}

답변을 작성하려면 로그인이 필요합니다.