웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
설문조사에서 로그인하지 않은 사용자는 투표하지 못하도록 수정하기
2008.05.29 19:46
이와 비슷한 내용의 글을 이미 Simulz님께서 올린 적이 있습니다. 하지만, 현재 1.0.3 버전과는 차이가 있어서 다시 내용을 정리해서 올립니다.
참고로 이 글은 제 블로그에 올렸던 글을 수정해서 올립니다.
제로보드XE의 설문조사 모듈은 기본적으로 로그인하지 않은 상태에서도 설문에 참여할 수 있기 때문에 때로는 이것이 문제가 될 수도 있습니다. 그래서 로그인하지 않은 사용자는 설문조사에 참여할 수 없도록 하기 위해 조금 손을 봐줄 필요가 있습니다.
우선 modules/poll/poll.model.php 파일에 있는 isPolled() 함수를 수정합니다.
이렇게 되어 있는 함수를
와 같이 25, 26, 27번째 줄을 수정합니다. 이 함수를 수정하는 것은 실제로 로그인하지 않은 사용자가 설문조사에 참여하지 못하도록 하는 것과는 큰 관계는 없지만, 이렇게 함으로 중복 투표를 막을 수 있기 때문에 수정하는 것입니다.
그런 다음, 같은 파일의 getPollHtml() 함수를 수정합니다.
이렇게 되어 있는 부분을
이와 같이 수정해줍니다.
이제 로그인하지 않은 사용자의 경우 설문조사 화면에서 결과 화면을 보여줌으로 결과적으로 로그인하지 않으면 설문조사에 참여할 수 없게 됩니다.
참고로 이 글은 제 블로그에 올렸던 글을 수정해서 올립니다.
제로보드XE의 설문조사 모듈은 기본적으로 로그인하지 않은 상태에서도 설문에 참여할 수 있기 때문에 때로는 이것이 문제가 될 수도 있습니다. 그래서 로그인하지 않은 사용자는 설문조사에 참여할 수 없도록 하기 위해 조금 손을 봐줄 필요가 있습니다.
우선 modules/poll/poll.model.php 파일에 있는 isPolled() 함수를 수정합니다.
function isPolled($poll_srl) { $args->poll_srl = $poll_srl; if(Context::get('is_logged')) { $logged_info = Context::get('logged_info'); $args->member_srl = $logged_info->member_srl; } else { $args->ipaddress = $_SERVER['REMOTE_ADDR']; } $output = executeQuery('poll.getPollLog'+ '+ ', $args); if($output->data->count) return true; return false; }
이렇게 되어 있는 함수를
function isPolled($poll_srl) { $args->poll_srl = $poll_srl; if(Context::get('is_logged')) { $logged_info = Context::get('logged_info'); $args->member_srl = $logged_info->member_srl; } $args->ipaddress = $_SERVER['+ 'REMOTE_ADDR']; $output = executeQuery('poll.getPollLog', $args); if($output->data->count) return true; return false; }
와 같이 25, 26, 27번째 줄을 수정합니다. 이 함수를 수정하는 것은 실제로 로그인하지 않은 사용자가 설문조사에 참여하지 못하도록 하는 것과는 큰 관계는 없지만, 이렇게 함으로 중복 투표를 막을 수 있기 때문에 수정하는 것입니다.
그런 다음, 같은 파일의 getPollHtml() 함수를 수정합니다.
if($poll->stop_date > date("Ymd")) { if($this->isPolled($poll_srl)) $tpl_file = "result"; else $tpl_file = "form"; } else { $tpl_file = "result"; }
이렇게 되어 있는 부분을
if($poll->stop_date > date("Ymd")) { if($this->isPolled($poll_srl) or !Context::get('is_logged')) $tpl_file = "result"; else $tpl_file = "form"; } else { $tpl_file = "result"; }
이와 같이 수정해줍니다.
이제 로그인하지 않은 사용자의 경우 설문조사 화면에서 결과 화면을 보여줌으로 결과적으로 로그인하지 않으면 설문조사에 참여할 수 없게 됩니다.
단, 이렇게 수정을 하면 모든 설문조사에 참여하고자할 때는 로그인을 해야합니다. 따라서, 경우에 따라 로그인하지 않은 사용자가 설문조사에 참여하도록 하기 위해서는 이렇게 수정해서는 안됩니다.
각각의 설문조사에서 로그인 사용자만 참여 가능하도록 설정하기 위해서는 DB 테이블 등을 수정해줘야 하기 때문에 현재로서는 별로 권하고 싶지 않습니다.
각각의 설문조사에서 로그인 사용자만 참여 가능하도록 설정하기 위해서는 DB 테이블 등을 수정해줘야 하기 때문에 현재로서는 별로 권하고 싶지 않습니다.
태그 연관 글
- [2018/11/15] 묻고답하기 메시지 모듈 삭제후 계속 나타나는 태그
- [2017/03/09] 묻고답하기 list.html에서 letter-spacing 수정 문의드립니다 *2
- [2016/03/25] 묻고답하기 레이아웃에서 변수선언시 모듈에서의 이용 *3
- [2015/03/23] 포럼 이메일 주소 제공자를 제한하는 모듈 1개, 랜덤 게시글 애드온 1개 *4
- [2015/03/09] 묻고답하기 특정 모듈에서의 로그인 위젯 작동 문제
댓글 3
제목 | 글쓴이 | 날짜 |
---|---|---|
간편 css 압축 | Ansi™ | 2015.04.21 |
폰갭과 웹앱 그리고 XE... [6] | onTrust | 2015.04.23 |
PC에서 모바일화면 보는방법 [2] | 빅스타 | 2015.04.29 |
리스트에 스크랩 버튼을 뺴는 코드입니다. [3] | 착한악마 | 2015.04.30 |
xe설치시 퍼미션 문제나 DB엑세스 문제 해결하기 | 길가던분 | 2015.05.01 |
CKEditor 이용시 몇가지 유용한 설정 [11] | prologos | 2015.05.02 |
속도관련 나노팁. [5] | 1052 | 2015.05.04 |
member 모듈 업데이트가 계속 나오는 경우 | 고니고니 | 2015.05.06 |
[서버운영] 웹 재요청 방지 및 트래픽 감소를 위한 방법 | 마루디자인 | 2015.05.06 |
인기글 [1] | kdp | 2015.05.07 |
게시판의 MP3파일 갯수 표시하기 | kdp | 2015.05.07 |
오늘 작성된 게시글수 [2] | kdp | 2015.05.07 |
모바일 이미지 제거모드 | kdp | 2015.05.07 |
모바일 이미지축소모드 | kdp | 2015.05.07 |
저같은 초보분들이 궁금해 하실것같아서요 [3] | 착한동구 | 2015.05.08 |
플렛모바일 네이버로 로그인하기 버튼 | LI-NA | 2015.05.17 |
확장 컴포넌트 밖으로 뺀 후 완전한 버튼화 [1] | 키스미베이베 | 2015.05.20 |
레이어형 로그인 사용시에 SSL 적용방법 (선택적 사용시) [1] | 불금 | 2015.05.20 |
XE 템플릿 문법 : 조건부 class 작성하기 | AJKJ | 2015.05.23 |
자바로 스크롤 구현 [1] | 착한동구 | 2015.05.25 |