회원가입 로직 순서 아시는 분 계실까요? 채택완료
메인과 회원가입 로그인관련 페이지 외에 는 비회원 접근이 안되도록 하고싶습니다.
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개
답변에 대한 댓글 5개
if ($is_guest && !in_array($current_page, $allow_pages) && !$is_kcaptcha) {
alert("로그인 후 이용 가능합니다.", G5_BBS_URL.'/login.php');
}
'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개
<?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');
}
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
/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 써도 마찬가지더라구요.