비회원 게시글 맛보기 기능? 가능할까요
본문
기본적으로 회원만 열람할 수 있는 게시판을 만드려고 합니다.
다만 비회원이라도, 처음 눌러본 한 개의 게시글은 회원가입 없이도 볼 수 있도록 하고 싶은데 가능할까요?
비로그인의 방문자에게도 포인트를 줄 수 있다면 1포인트를 적립해주고, 열람시 1차감으로 하면 될텐데 아쉽네요ㅎㅎ;
아이디어를 부탁드립니다!!
답변 7
아 제가 잘못생각했네요 죄송합니다~~
비회원은 login_check.php에 엑세스 하지 않습니다.
일단 이렇게 한번 해보세요~
/skin/board/적용할스킨명/view.skin.php 제일 상단
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
다음 부분에 적어주세요
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";
}
}
직접 해 본건 아니구요,
생각만 해 보자면
첫 글 읽을 시 비회원인 경우 즉, <?php if (!$is_member) { ?>
세션이나 쿠키에 값이 없을 시 일정한 값을 주고,
값이 이미 있으면 글을 열람할 수 없게 메시지나 alert창을 보이고
다른 페이지로 이동시키면 될 듯 합니다.
이런식으로 하면 되지 않을까요?^^
로그인시 (login_check.php)에
$_SESSION['already_read'] = '0';
게시물 읽을때 (view.php)에 (추가적으로 회원이 아닐때만 실행되도록 해야되고, 게시물 읽기 권한을 비회원도 주셔야 겠네요)
코드 안보고 말씀드리는거라 정확히 기억은 안나는데 $_SESSION['ss_mb_id'] == ''일때를 체크하면 로그인중인지 알 수 있을것 같네요
if ($_SESSION['already_read'] == '0')
{
$_SESSION['already_read'] = '1';
}
else
{
?>
<Script Type = "Text/JavaScript">
//한번 읽고 난 후 처리
alert("회원가입후 이용가능합니다");
location.href = "/index.php";
</Script><?
exit;
}
그누보드4인지 5인지 좀 먼저 알려주시겠어요?
태그를 2개 하셔서..
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회만에 회원가입 요청안내를 나타내고 여기에 써주신 것은 아예 페이지가 깨져버리네요.
한 10회정도 보여준 후에 회원가입안내를 하고 싶은데 깨지지 않는 올바른 코드를 받을 수 있을까요?
다시한번 점검을 부탁드립니다. 감사합니다.
어찌 어찌 하다가 제가 자문자답하게 되었네요. { 가 빠져서 안됐던 것입니다. 저는 20회가 필요해서 다음과 같이 했더니 잘 됩니다. 감사합니다.
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;
}
}
!-->