테스트 사이트 - 개발 중인 베타 버전입니다

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

굼떠 1개월 전 조회 208

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

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

</p>

<p><?php</p>

<p>// ============================================================================================</p>

<p>// 마스타팩 extend</p>

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

<p>// ============================================================================================</p>

<p>$current_page = basename($_SERVER['SCRIPT_NAME']);</p>

<p> </p>

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

<p>$public_pages = [</p>

<p>    'login.php',</p>

<p>    'register.php',</p>

<p>    'register_form.php',</p>

<p>    'register_form_update.php',</p>

<p>    'register_result.php',</p>

<p>    'email_certify.php',</p>

<p>    'register_form_update_mail1.php',</p>

<p>    'register_form_update_mail2.php',</p>

<p>    'register_form_update_mail3.php'</p>

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

<p>];</p>

<p> </p>

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

<p>if ($is_guest && !in_array($current_page, $public_pages)) {</p>

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

<p>}</p>

<p>$no_show_header_and_footer = in_array($current_page, $public_pages);</p>

<p>?></p>

<p>

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

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

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

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

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

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

 

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

답변 2개

채택된 답변
+20 포인트
1개월 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

s
sinbi
1개월 전
이 질문 보고 저도 궁금해서 테스트 해보고 있었는데, 신기한 현상을 경험했어요.
/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 써도 마찬가지더라구요.
웅푸
1개월 전
$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개월 전
확인해 본 결과 비회원 접근 가능한 페이지에,
'kcaptcha_image.php' 포함이 안되어 있어서 생긴 현상이었습니다.
s
sinbi
1개월 전
두 분 덕분에 궁금증 해결했습니다. 감사합니다.
왜 안 되는 걸까 하고 두어시간 보냈네요. ㅡㅡ;;
굼떠
1개월 전
오 신비님의 질문 덕분에 좋은 정보 얻어갑니다. 마르스컴퍼니님도 감사드립니다!

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

1개월 전

다음처럼 하세요

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개

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

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

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

로그인