게시글의 내용 중 일부를 Point 차감하고 보게 할 수 있을까요?

게시글의 내용 중 일부를 Point 차감하고 보게 할 수 있을까요?

QA

게시글의 내용 중 일부를 Point 차감하고 보게 할 수 있을까요?

답변 4

본문

누구나 게시글을 볼 수 있되,

게시글 내용 중 일부를 기본적으로 숨김처리하고, "보기" 버튼을 클릭해서 Point 차감하고 보게하고 싶습니다.

 

예를 들어, "코가 긴 동물의 이름은?" 이라는 문제에 대한 힌트를 주고 싶은데요.

힌트 1. 정답 글자수 "보기" -> 3

힌트 2. 첫번째 글자 "보기" -> 코

힌트 3. 두번째 글자 "보기" -> 끼

힌트 4. 세번째 글자 "보기" -> 리

 

이런식으로 힌트를 보려면 포인트를 차감하고 볼 수 있고,

다음에 다시 해당 게시물을 조회했을 때, 이미 보았던 힌트는 포인트 차감없이 기본으로 보이도록 하고 싶어요.

이 질문에 댓글 쓰기 :

답변 4

할 수는 있는데 원하시는걸 다 답변으로 받을수 있을지는 모르겠네요.

볼때마다 해당에 대한 정보를 디비에 저장해두고 비교하면서 보여주거나 하시면 될거 같습니다.

이렇게 해보는건 어떠실까요?

 

<?php
// 사용자의 포인트 정보를 가져오는 함수
function get_user_points($user_id) {
    // 포인트 정보를 데이터베이스 등에서 가져오는 로직
    // 예: SELECT points FROM users WHERE user_id = $user_id
    // 포인트 정보를 반환
    return $points;
}

// 사용자의 포인트를 차감하는 함수
function deduct_points($user_id, $points) {
    // 사용자의 포인트를 차감하는 로직
    // 예: UPDATE users SET points = points - $points WHERE user_id = $user_id
    // 차감 결과를 반환
    return $deducted;
}

// 게시글의 힌트 정보
$hints = [
    1 => "정답 글자수: 3",
    2 => "첫번째 글자: 코",
    3 => "두번째 글자: 끼",
    4 => "세번째 글자: 리"
];

// 사용자 정보 (예: 로그인한 사용자의 ID)
$user_id = 123;

// 게시글의 ID
$post_id = 456;

// 사용자의 포인트 정보 가져오기
$user_points = get_user_points($user_id);

// 게시글을 조회한 적이 있는지 확인
$has_viewed_post = check_if_user_has_viewed_post($user_id, $post_id);

// 힌트를 보기 위해 포인트를 차감하고 힌트 내용 출력
if ($has_viewed_post) {
    // 이미 게시글을 조회하여 힌트를 보았을 경우
    // 힌트 내용을 기본으로 보여줌
    foreach ($hints as $hint) {
        echo $hint . "<br>";
    }
} else {
    // 게시글을 처음 조회하여 힌트를 보는 경우
    // 포인트 차감 로직을 추가하여 포인트 차감 후 힌트를 보여줌
    $points_to_deduct = 1; // 힌트를 보기 위해 차감할 포인트
    if ($user_points >= $points_to_deduct) {
        // 포인트 차감 가능한 경우
        deduct_points($user_id, $points_to_deduct);
        mark_post_as_viewed($user_id, $post_id); // 게시글을 조회한 것으로 표시
        foreach ($hints as $hint) {
            echo $hint . "<br>";
        }
    } else {
        // 포인트 차감 불가능한 경우
        echo "포인트가 부족하여 힌트를 볼 수 없습니다.";
    }
}
?>
 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 3,230
© SIRSOFT
현재 페이지 제일 처음으로