게시글의 내용 중 일부를 Point 차감하고 보게 할 수 있을까요?
누구나 게시글을 볼 수 있되,
게시글 내용 중 일부를 기본적으로 숨김처리하고, "보기" 버튼을 클릭해서 Point 차감하고 보게하고 싶습니다.
예를 들어, "코가 긴 동물의 이름은?" 이라는 문제에 대한 힌트를 주고 싶은데요.
힌트 1. 정답 글자수 "보기" -> 3
힌트 2. 첫번째 글자 "보기" -> 코
힌트 3. 두번째 글자 "보기" -> 끼
힌트 4. 세번째 글자 "보기" -> 리
이런식으로 힌트를 보려면 포인트를 차감하고 볼 수 있고,
다음에 다시 해당 게시물을 조회했을 때, 이미 보았던 힌트는 포인트 차감없이 기본으로 보이도록 하고 싶어요.
답변 4개
이렇게 해보는건 어떠실까요?
// 사용자의 포인트를 차감하는 함수 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 . " "; } } 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 . " "; } } else { // 포인트 차감 불가능한 경우 echo "포인트가 부족하여 힌트를 볼 수 없습니다."; } } ?>
댓글을 작성하려면 로그인이 필요합니다.
네 구현이야 가능합니다만
글 보기시 포인트 차감내역에 따라 기록해두고
오픈 글자수 기록해두어 그만큼 오픈해서 보여주면 될듯 합니다.
댓글을 작성하려면 로그인이 필요합니다.
할 수는 있는데 원하시는걸 다 답변으로 받을수 있을지는 모르겠네요.
볼때마다 해당에 대한 정보를 디비에 저장해두고 비교하면서 보여주거나 하시면 될거 같습니다.
답변에 대한 댓글 2개
보시면 글읽기에 대해서
포인트 처리 하는 부분이 있는데 이를 참고해 보세요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인