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

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

QA

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

본문

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

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


<?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

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

이 질문 보고 저도 궁금해서 테스트 해보고 있었는데, 신기한 현상을 경험했어요.
/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');
}

다음처럼 하세요

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);

}
 

 

 

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');
}

답변을 작성하시기 전에 로그인 해주세요.
전체 129,406 | RSS
QA 내용 검색

회원로그인

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