채택완료

비회원 게시글 맛보기 기능? 가능할까요

2014-07-25 (금) 06:22:02 7,482

기본적으로 회원만 열람할 수 있는 게시판을 만드려고 합니다.

다만 비회원이라도, 처음 눌러본 한 개의 게시글은 회원가입 없이도 볼 수 있도록 하고 싶은데 가능할까요?

비로그인의 방문자에게도 포인트를 줄 수 있다면 1포인트를 적립해주고, 열람시 1차감으로 하면 될텐데 아쉽네요ㅎㅎ;

아이디어를 부탁드립니다!!

답변 7개 / 댓글 4개

채택된 답변
+20 포인트
2014-07-25 (금) 13:36:16

아 제가 잘못생각했네요 죄송합니다~~

비회원은 login_check.php에 엑세스 하지 않습니다.

일단 이렇게 한번 해보세요~

/skin/board/적용할스킨명/view.skin.php 제일 상단

if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

다음 부분에 적어주세요

Copy
if (!$is_member){if ($_SESSION['already_read'] == "1"){?><Script Type = "Text/JavaScript">  alert("회원가입 후 이용가능합니다");location.href = "/bbs/register.php";</Script><?exit;}else{$_SESSION['already_read'] = "1";}}
 

답변에 대한 댓글 1개

2014-07-26 (토) 04:40:58
감사합니다.!! 완벽하게 작동되네요~
두 번 보여주고 차단한다면, 전체에 if문을 한번 더 씌워서 "2"까지 올려주면 될까요?
어쨋든 빠르고 정확한 답변 감사드려요^^

어찌 어찌 하다가 제가 자문자답하게 되었네요. { 가 빠져서 안됐던 것입니다. 저는 20회가 필요해서 다음과 같이 했더니 잘 됩니다. 감사합니다.  

Copy
if (!$is_member){if ($_SESSION['already_read'] >= "20"){?><Script Type = "Text/JavaScript">  alert("회원가입 후 이용가능합니다");location.href = "/bbs/register.php";</Script><?exit;}else{if ($_SESSION['already_read'] == "") $_SESSION['already_read'] = 0;$_SESSION['already_read'] = $_SESSION['already_read'] + 1;}}

안녕하세요. 너무 좋은 기능이라서 쓰고 싶은데 맨 앞에 채택 된 것은 1회만에 회원가입 요청안내를 나타내고 여기에 써주신 것은 아예 페이지가 깨져버리네요.  

한 10회정도 보여준 후에 회원가입안내를 하고 싶은데 깨지지 않는 올바른 코드를 받을 수 있을까요?  

다시한번 점검을 부탁드립니다. 감사합니다.  

2014-07-26 (토) 12:22:31

2번 이라면 이렇게.. 하면 될것 같습니다.
 

[code]

if (!$is_member)

if ($_SESSION['already_read'] >= 2)
{
?>
<script Type = "Text/JavaScript">
  alert("회원가입 후 이용가능합니다");
location.href = "/bbs/register.php";
</script>
<?
exit;
}
else
{

if ($_SESSION['already_read'] == "") $_SESSION['already_read'] = 0;
$_SESSION['already_read'] = $_SESSION['already_read'] + 1;
}
}
​[code] 

답변에 대한 댓글 1개

안녕하세요. 너무 좋은 기능이라서 쓰고 싶은데 맨 앞에 채택 된 것은 1회만에 회원가입 요청안내를 나타내고 여기에 써주신 것은 아예 페이지가 깨져버리네요.



한 10회정도 보여준 후에 회원가입안내를 하고 싶은데 깨지지 않는 올바른 코드를 받을 수 있을까요?



다시한번 점검을 부탁드립니다. 감사합니다.
2014-07-25 (금) 12:03:04

그누보드4인지 5인지 좀 먼저 알려주시겠어요?

태그를 2개 하셔서.. 

답변에 대한 댓글 1개

2014-07-25 (금) 13:29:06
그누5입니다.
'설마 쉽게 되겠어'하고 글 올려봤는데 이렇게 구체화시켜주시다니 감사드립니다!!
2014-07-25 (금) 08:59:21

이런식으로 하면 되지 않을까요?^^

로그인시 (login_check.php)에

Copy
$_SESSION['already_read'] = '0';

게시물 읽을때 (view.php)에 (추가적으로 회원이 아닐때만 실행되도록 해야되고, 게시물 읽기 권한을 비회원도 주셔야 겠네요)

코드 안보고 말씀드리는거라 정확히 기억은 안나는데 $_SESSION['ss_mb_id'] == ''일때를 체크하면 로그인중인지 알 수 있을것 같네요

Copy
if ($_SESSION['already_read'] == '0'){$_SESSION['already_read'] = '1';}else{?><Script Type = "Text/JavaScript">//한번 읽고 난 후 처리alert("회원가입후 이용가능합니다");location.href = "/index.php";</Script><?exit; }
 

답변에 대한 댓글 1개

보다보니까 정말 유용한 기능 같아서요
까막눈이라 아는바가 없는데 조금 더 자세히 설명해주실 수 있을까요?ㅠ
직접 코딩까지 해주셔서 감사한데, 어디에다 적용을 해야할지 모르겠네요
1줄짜리는 login_check에, 15줄짜리는 view에 넣어주면되나요? 늦어도 좋으니 시간 나실때 상세히 안내 가능하시면, 좀 부탁드리겠습니다ㅜㅜ 감사합니다

직접 해 본건 아니구요,

생각만 해 보자면 

첫 글 읽을 시 비회원인 경우 즉, <?php if (!$is_member) {  ?>

세션이나 쿠키에 값이 없을 시 일정한 값을 주고,

값이 이미 있으면 글을 열람할 수 없게 메시지나 alert창을 보이고

다른 페이지로 이동시키면 될 듯 합니다.

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