투표가 제대로 작동되지 않습니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

투표가 제대로 작동되지 않습니다. 정보

투표가 제대로 작동되지 않습니다.

본문

sir에서 다운받은거 그대로 올려서 테스트해도 작동이 되지 않네요.
 
'기타의견'에 내용을 넣으면 아예 안되고, 의견을 넣지 않고 설문을 등록하면 최초 1번은 됩니다.
 
두번째 부터는 그냥 결과창만 나타나고 숫자가 증가하지 않구요.(같은 곳에서 중복해서 투표하는 것이니 정상적이라면 '이미 투표하셨습니다' 식의 메세지가 나와야 할텐데 말이죠!)
 
DB에 등록된 ip를 변경해도 안되는걸 보면 IP중복문제는 아닌것 같습니다.
 
 
테스트용 id: 5555 pw: 5555
          id: 1111 pw: 1111
  • 복사

댓글 전체

투표번호, 회원 아이디, 아이피 , 쿠키,  모두 검사 합니다.
이중에서 단 한개라도 중복이 걸리면 중복투표로 인식을 하도록 되어 있습니다.

중복일경우 소스를 보면 안내없이 통과가 됩니다.

<?
include_once("./_common.php");

$po = sql_fetch(" select * from $g4[poll_table] where po_id = '$_POST[po_id]' ");
if (!$po[po_id])
    alert_close("po_id 값이 제대로 넘어오지 않았습니다.");

if ($member[mb_level] < $po[po_level])
    alert_close("권한 $po[po_level] 이상 회원만 투표에 참여하실 수 있습니다.");

// 쿠키에 저장된 투표번호가 없다면
if (get_cookie("ck_po_id") != $po[po_id])
{
    // 투표했던 ip들 중에서 찾아본다
    $search_ip = false;
    $ips = explode("\n", trim($po[po_ips]));
    for ($i=0; $i<count($ips); $i++)
    {
        if ($_SERVER[REMOTE_ADDR] == trim($ips[$i]))
        {
            $search_ip = true;
            break;
        }
    }

    // 투표했던 회원아이디들 중에서 찾아본다
    $search_mb_id = false;
    if ($is_member)
    {
        $ids = explode("\n", trim($po[mb_ids]));
        for ($i=0; $i<count($ids); $i++)
        {
            if ($member[mb_id] == trim($ids[$i]))
            {
                $search_mb_id = true;
                break;
            }
        }
    }

    // 없다면 선택한 투표항목을 1증가 시키고 ip, id를 저장
    if (!($search_ip || $search_mb_id))
    {
        $po_ips = $po[po_ips] . $_SERVER[REMOTE_ADDR] . "\n";
        $mb_ids = $po[mb_ids];
        if ($member[mb_id])
            $mb_ids .= $member[mb_id] . "\n";
        sql_query(" update $g4[poll_table] set po_cnt{$gb_poll} = po_cnt{$gb_poll} + 1, po_ips = '$po_ips', mb_ids = '$mb_ids' where po_id = '$po_id' ");
    }

    if (!$search_mb_id)
        insert_point($member[mb_id], $po[po_point], $po[po_id] . ". " . cut_str($po[po_subject],20) . " 투표 참여 ", "@poll", $po[po_id], "투표");
}

set_cookie("ck_po_id", $po[po_id], 86400 * 15); // 투표 쿠키 보름간 저장

goto_url("./poll_result.php?po_id=$po_id&skin_dir=$skin_dir");
?>
© SIRSOFT
현재 페이지 제일 처음으로