비회원의 글작성 후 자신이 쓴 비밀글 게시물 보기
본문
안녕하세요.
어려운 문제에 직면했습니다.
이 게시판은 비회원이 글을 작성할 수 있으며
글을 읽을 수 있는 레벨은 2입니다.
그리고 작성된 글은 비밀글이 됩니다.
이렇게 되어 있다보니 문제가 있습니다.
비회원이 글을 작성한 후 바로 글을 읽을 수 없게 됩니다.
그러다보니 글작성 후 읽을 수 없다는 경고창이 나오고
바로 로그인 화면이 나오니 뭔가 좀 흐름이 안좋아 보입니다.
회원이 글 작성 후에 우선 자기가 작성한 글을 보고 목록으로 나가게 하고 싶은데
(원래 그누보드에서 기본적으로 이렇게 처리되는 것으로 알고 있는데
문제는 위에도 썼지만 작성한 글이 무조건 비밀글로 설정되기 때문에
그렇게 안되는 것 같습니다.)
어떻게 하면 자기가 쓴 글은 일단 한번 읽을 수 있게 할 수 있을까요?
고수님의 도움이 필요합니다 ㅠ_ㅠ
답변 5
질문을 댓글의 추가설명 처럼 실제 사용 상황을 설명했으면 좋았겠습니다
다음 두가지 방법이 있습니다
관리자가 글 내용을 수정한 후 비밀글을 풀고 있으며 ==>
1. 읽기권한을 1 로 설정시
읽기권한을 1로 해도 관리자 수정전에는 비밀글이니 비번 모르면 읽지 못하겠지요
그런 상태로 둔 후 view.skin.php 상단에 비밀글이 아닐 때 레벨이 2 이상만 내용보기 가능하게 조건을 넣으면 되겠습니다
if ( strpos($view['wr_option'], "secret") ===false && $member['mb_level'] < 2) alert('회원만 읽기 가능');
2. 읽기권한을 2로 설정시
extend/user.config.php에서 방금 등록한 글이면 읽기 레벨을 임시로 1로 해주면 되겠습니다
if($bo_table =='qa' && $wr_id){
if( get_session("ss_secret_{$bo_table}_{$write['wr_num']}" )) $board['bo_read_level'] = 1;
}
소스를 커스텀 해야 하는데
현재 자신의 글인경우는 해당글을 레벨권한이 아닌 자신의 글은 읽을수 있게 커스텀하면 가능하리라 보입니다.
글 작성은 '비회원' 가능인데..
글 읽기는 레벨 2 이상이라 '비회원' 불가라서..
이상해 보입니다.
글 읽기 레벨도 1 (이상) 로 설정하면 해결될 것 같습니다.
세션이나 쿠키 이용하세요
글 저장시 쿠키 또는 세션을 따로 굽고
해당 쿠키가 살아 있는 동안 입장이 가능하도록 할 것인지등을 커스마이징하면 될듯 합니다
비회원이
글쓰기 후 쿠키나 세션이 살아 있으니 자신이 쓴 글을 읽을 수 있고
다음에 접근했을 때는 세션 혹은 쿠키가 없으니 패스워드 입력후 글 쓸때와 마찬가지로 쿠키나 세션을
구워서 같은 형식으로 보게하면 될듯 합니다
대신 비회원이니 되도록 세션이나 쿠키의 생존 시간을 길게 잡아서는 안됩니다
본인이 어디 어디에 써야하고 고쳐야 하는지 어느 정도 아시니 한번 더 차분히 살펴보세요 ^^;;
저는 이야기로만 다시 한번 짚어 드릴께요
예를 들어 쿠키를 굽는다고 했을 때
필요한 것은 현재 게시판만 필요해야할거 같구( 모든 게시판 오픈 보다는 특정 게시판으로 한정하는게 좋습니다 ) 위에서 잠깐 언급했듯이 쿠키의 생존 시간을 되도록 짧게하는게 좋습니다 비회원이니
누군가 현재의 컴퓨터로 다시 접근해서 비밀글을 볼 여지가 있기 때문에 최대한 10분 내외로 잡는게 좋을듯 합니다 필요시 본인 글 확인 페이지에서 쿠키를 삭제해도 됩니다
자 위의 것을 토대로 글 작성시 저장되는 페이지에서 이프문등을 구분해 넣어서 쿠키 처리합니다
글 저장 페이지 ============
if( 게시판 아이디 ==='게시판 아이디1' || 게시판 아이디 ==='게시판 아이디2' ){
if( 유저 아이디가 없는 ){
10분짜리 A라는 이름의 쿠키 굽기
}
}
위에서는 쿠키만 구우면 됩니다
//기존 글 입력 저장 소스들 ~~~
대략 위와 같은 프로세스일거구
글 보기 페이지 ============
글저장시 10분짜리 A라는 이름의 쿠키가 구워졌으니 해당 쿠키를 글보기 페이지에 적용합니다
글보기 페이지에 권한 설정된 부분을
if( 기존 권한 설정 레벨 체크 부분){
글 내용
}
위와 같은 형태를
if( 기존 권한 설정 레벨 체크 부분 || 비회원이지만 쿠키가 남아 있다면 ){
글 내용
// 필요시 쿠키를 바로 삭제
}
아쉬운대로
위와 같이하면 되긴 하지만 OR로 원본 소스를 추가해 주기에 썩 좋은 소스라 할 수는 없을거 같습니다 더 좋은 방법이 있으면 그 방법을 한번 써보세요
덧붙여 소스 작업중 막히시면
제일 좋은 것은 흐름도를 직접 타이핑해서 한줄 한줄 써보세요
그 구문들을 가지고 이프문을 만들고 그 흐름을 타면 됩니다