투표 관련 문의 드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
투표 관련 문의 드립니다.

QA

투표 관련 문의 드립니다.

본문

투표를 하루 1번만 참여가능하게 하려고 합니다.

비회원 참여부분이라 사용자 정보가 없는 상태라 ip로 체크를 하고 있는데

같은 ip를 사용하는 다른 사용자도 막히는 문제가 발생합니다.

보통 이런 경우 뭘 더 체크해야 하나요? 브라우저 정보를 생각해보았지만

다른 브라우저로 접속하면 의미가 없어지니 좋은 방법이 없을까요?

 

이 질문에 댓글 쓰기 :

답변 2

방법은 다양합니다.

쿠키사용, 회원가입요구, 소셜미디어 로그인, 세션사용, CAPTCHA 사용 등 

 

예시를 참고하셔서 원하시는 로직으로 구현 하시면 될 것 같습니다.


<?php
// PHP 세션을 시작합니다.
session_start();
// 투표 처리 로직을 수행합니다.
function handleVote()
{
    // 사용자 IP 주소를 가져옵니다.
    $user_ip = $_SERVER['REMOTE_ADDR'];
    // 해당 IP의 세션 변수가 설정되어 있는지 확인합니다.
    if (!isset($_SESSION['voted_ips'])) {
        $_SESSION['voted_ips'] = array();
    }
    // 해당 IP가 이미 투표한 IP 목록에 있는지 확인합니다.
    if (in_array($user_ip, $_SESSION['voted_ips'])) {
        // 이미 투표한 IP이므로 투표 참여를 막습니다.
        echo "하루에 한 번만 투표가 가능합니다.";
    } else {
        // 투표 처리를 진행합니다.
        // ...
        // 투표가 성공적으로 처리되면 IP를 투표한 IP 목록에 추가합니다.
        $_SESSION['voted_ips'][] = $user_ip;
        echo "투표가 완료되었습니다.";
    }
}
// 투표 요청이 들어온 경우 처리합니다.
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    handleVote();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>투표 페이지</title>
</head>
<body>
    <h1>투표 페이지</h1>
    <form method="post" action="">
        <!-- 투표 양식 등록 -->
        <input type="submit" value="투표" />
    </form>
</body>
</html>

쿠키 하나 궈 보시죠 ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 38
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT