회원만 투표가능한 방법 다시 질문 > 그누3질답

그누3질답

회원만 투표가능한 방법 다시 질문 정보

그누보드 회원만 투표가능한 방법 다시 질문

본문

3.35버전 현재의 투표방식은 접속자의 ip를 기준으로 투표여부를 확인합니다.
이걸 회원만 투표가능한 방법으로 변경하고자 합니다.

해피아이님께서 아래 방법을 가르쳐 주셨는데.......

http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=qa&page=2&wr_id=21041

이 방법 역시 회원이 투표를 하고 다른 컴퓨터에서 투표 결과를 확인하려면 다시 투표를 해야 합니다.

예전에는 됐던것 같은데(3.26 이전 버전) 3.26버전으로 해보니 비회원도 투표가 가능하네요.
아마도 아래 링크에서 제가 올렸던 질문은 제 오해가 있었던것 같습니다.
http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=qa&sselect=wr_subject&stext=%C5%F5%C7%A5&soperator=1&page=1&wr_id=18396
업그레이드를 하면 스킨 디렉토리는 안하기 때문에 사실 제가 알고 있는 회원만 가능한 투표는 버전이 얼마인지는 모릅니다.
자료실에서 업그레이드된 내용을 확인했는데 투표관련 내용은 언급된걸 못 봤습니다.

제가 생각하는 방법은,
투표 확인여부를 ip가 아닌 회원아이디로 하면 가능할것 같은데 제 능력 밖의 문제입니다.

고수님들의 한수 지도를 부탁드립니다.

http://hyusig.net/bbs
테스트 아이디/비번 : test/test, gnu/gnu
  • 복사

댓글 전체

카이루님 고맙습니다.

이렇게 하면 회원만 투표하기는 됩니다.
하지만 이 방법 역시 회원이 투표를 하고 다른 컴퓨터에서 투표 결과를 확인하려면 다시 투표를 해야 합니다.
이게 문제입니다. ㅠ.ㅠ
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "NONE");

$vo = sql_fetch(" select * from $cfg[table_vote] where vo_id = '$_POST[vo_id]' ");
if (!$vo[0]) {
    alert("vo_id 값이 제대로 넘어오지 않았습니다.");
}
if( $member[mb_level] < "2"){

    gotourl("./?doc=bbs/voteresult.php&vo_id=$vo_id");
  }
  else {

// 3.27 수정
// 세션에 없고 쿠키에 없을 경우만 업데이트
if ($HTTP_SESSION_VARS["ss_vo_id"] != $vo_id && $HTTP_COOKIE_VARS["ck_vo_id"] != $vo_id) {
    $sql = " update $cfg[table_vote]
                set vo_cnt{$gb_vote} = vo_cnt{$gb_vote} + 1
              where vo_id = '$vo_id' ";
    sql_query($sql);
}

// 3.09 추가
session_register("ss_vo_id");
$ss_vo_id = $HTTP_SESSION_VARS["ss_vo_id"] = $vo_id;

setcookie("ck_vo_id", $vo_id, time() + 86400*15, $default[de_cookie_dir], $default[de_cookie_domain]);

gotourl("./?doc=bbs/voteresult.php&vo_id=$vo_id");
  }
?>

이런식으로 해더니만 회원들만 투표할수 있더라고요 ^_^
if ($w == '') {
    $vo = sql_fetch(" select * from $cfg[table_vote] where vo_id = '$vo_id' ");
    if (!$vo[0]) {
        alert("vo_id 값이 제대로 넘어오지 않았습니다.");
    if( $member[mb_level] < "2"){
      alert("비회원은 투표에 참여할수 없습니다.");
  }
    }
© SIRSOFT
현재 페이지 제일 처음으로