비회원 모든 페이지 읽기 제한하는 방법

비회원 모든 페이지 읽기 제한하는 방법

QA

비회원 모든 페이지 읽기 제한하는 방법

본문

안녕하세요

작성된 질답글을 보고 적용하여도 해결이 안되어 질문을 남깁니다.

 

현재, 로그인 페이지를 만들고 로그인시 메인화면.. 거기서 카테고리 클릭시

해당 카테고리의 정보들이 나오는 구조의 페이지를 제작의뢰하여 만들었습니다.

 

문제는 로그인 기능이 페이지 이동만 할뿐, 각 페이지의 링크를

주소창에 입력하면 로그인을 하지 않아도 모두 열람이 가능하더군요.

 

작성된 질답의 php 등을 수정해보아도 적용을 어떻게 해야되는지 몰라 질문을 남깁니다.

 

전체 페이지에 비회원이 접속할시 로그인 알림창이 뜨고, 로그인 페이지로 이동시킬 수 있을까요?

이 질문에 댓글 쓰기 :

답변 5

참고하세요.

https://sir.kr/g5_tip/3351

각 게시판별로 읽기, 쓰기, 답글, 댓글 권한을 2레벨 이상으로 하면 되지 않을까요?

답글 감사합니다!

처음 제작한 사람이, 게시판 형식으로 한게 아니고.. 서버에 페이지 내용들을 업로드하여 구현했습니다ㅠㅜ 저도 게시판관리를 건드려봤는데, 게시판이랑 현재 제작된 페이지들과 하더라구요ㅠ 혹시, 게시판으로 등록시킬 수 있는 방법이 있을까요?


그런경우에는

해당페이지의 상단의
<?php
include_once("./_common.php");

바로 직후에 적용하는게 좋습니다.

그누보드의 권한을 사용하는경우
로그인한 회원은 기본적으로 (다른 셋팅값을 가지지 않는다면)

$is_member 변수가 true
이고
$member['mb_level'] 이 2 이상의 값을 가지게 됩니다.

비회원이 접근을 하면 안되는 페이지 인경우

<?php
include_once("./_common.php");
if (!$is_member) return;
?>
으로 하시면 해당 페이지는 노출되지 않습니다.
그냥 공백이겠죠

다른분의 설명대로

if (!$is_member) alert("로그인하세요!");

라고 하면 이전으로 돌아가게 될겁니다..
alert이 작동하지 않는다면

이미 공통함수가 커스텀 된경우일테니

if (!$is_member) {?>
<script>history.back();</script>
<?php } ?>
와 같이 원초적인 방법으로 사용할수도있겠죠

그누 공통 모듈이 커스텀된경우
$is_member가 안먹을수도 있습니다.
하지만

이것도 역시 재 커스텀으로 편집은 가능합니다.

사이트의 관리자/운영자 시라면

그누 5.3 새로운 버전을 별도로 설치해서

$is_member를 세팅하는 부분정도는 스스로 재 적용하시는게 좋을듯 싶습니다.

$member['mb_level'] > 1
또는
존재를 판단하는경우
if ($member['mb_level'] ) 로도 혹은
if ($member['mb_id'])  로 해도 ID값이 셋팅된경우는 로그인한경우로 판단할수도있겠죠
 
해결방법은 다양하니 적절한 적용시점을 찾으셔서 해결하시길 바랍니다.

common.php 파일에 

if ($_SESSION['ss_mb_id']=="") { // 비로그인

  alert("로그인하세요.", "이동할 주소");

}

답변들 감사합니다.

적용해보았는데.. 문제는 login.php 에서도 alert 뜨고, 무한반복이 되더라구요ㅠ 혹시 해결방법이 있을까요?

그리고 추가로, 다른 페이지 링크찍고 들어가보니 alert이 안뜨는데..
현재 구조가
common.php가 속한 폴더와, 제작한 페이지들의 상위 폴더가 동등한 위치에 있었습니다. 이 문제때문에 적용이 안되는걸까요?

www란 폴더 아래 A,B폴더가 있는데
A에는 제작한 페이지들
B폴더 하위에 common.php, head.php, head_sub.php 등등이 있었습니다.

extend/user.config.php에 아래 내용을 넣으세요

로그인, 회원가입 , 비번 찾기만 페이지가 열립니다

 

if( !$is_member &&  strpos($_SERVER['PHP_SELF'], "login") === false &&  strpos($_SERVER['PHP_SELF'], "register") === false && strpos($_SERVER['PHP_SELF'], "password") === false)

alert("로그인 하세요", G5_BBS_URL."/login.php");

페이지 전체를 조건으로 걸어서 회원인지를 체크합니다.

 

<?php

include_once "_common.php";

if ($member['mb_id']) {

?>

  보여줄 내용

<?php

} else {

echo "회원로그인후 이용해주세요";

}

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

회원로그인

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