insert point 질문
본문
https://github.com/PriyanshK09/Spin-the-Wheel-HTML
에 있는 룰렛 소스를 활용해서 포인트를 적립하려고 합니다.
php쪽 문제라 게시글에는 php코드만 올립니다. 전체 소스는 아래에서 다운로드 가능합니다.
룰렛에서 나온 결과를 자바스크립트 generatedValue 변수에 넣고 그걸 다시 php에 gvalue라는 변수에 집어넣고 gavlue 값만큼 포인트를 추가 하려는건데.
insert_point에서 오류 나는데 뭐가 문제일까요?
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once('./_common.php');
// POST 요청 처리 (JavaScript에서 전송된 gvalue 처리)
$gvalue = null;
// insert_point 함수 정의
function insert_point($mb_id, $point = null, $content = '포인트 게임 적립', $rel_table = '@passive', $rel_id = 'ww9603', $rel_action = 'Point_Game', $expire = 0) {
if ($point === null && isset($gvalue)) {
$point = $gvalue; // $gvalue 값을 사용
}
}
// POST 요청이 있을 경우
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// JavaScript에서 전송된 'gvalue' 값 가져오기
$gvalue = $_POST['gvalue'] ?? null;
// 응답을 JSON 형식으로 반환
echo json_encode(['gvalue' => $gvalue]);
exit; // PHP 스크립트 종료
}
?>
답변 1
* 그누보드의 insert_point() 함수는 /lib/common.lib.php 에 정의되어 있습니다. 사용만 하면 됩니다.
* 함수정의와 함수사용의 개념 이해가 필요해 보입니다.
=> https://thebasics.tistory.com/29
* 수정해 본 코드입니다. (by Claude)
(동일 디렉토리에 '_common.php' 가 없는 경우 에러가 발생할 수 있습니다.)
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include_once('./_common.php');
// POST 요청 처리
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// POST로 전달된 값 확인
$gvalue = isset($_POST['gvalue']) ? (int)$_POST['gvalue'] : 0;
if (!$is_member) {
die(json_encode(['error' => true, 'message' => '회원만 이용 가능합니다.']));
}
// 꽝이 아닐 경우에만 포인트 지급
if ($gvalue > 0) {
// 포인트 지급
$point = $gvalue * 100; // 룰렛 숫자 * 100 포인트 지급
$content = '룰렛 게임 포인트 적립';
// insert_point 실행
insert_point($member['mb_id'], $point, $content, '@passive', 'roulette_'.uniqid(), 'roulette_game');
echo json_encode([
'error' => false,
'message' => $point.'포인트가 적립되었습니다.',
'gvalue' => $gvalue
]);
} else {
// 꽝일 경우 메시지만 전달
echo json_encode([
'error' => false,
'message' => '아쉽게도 꽝입니다.',
'gvalue' => $gvalue
]);
}
exit;
}
?>
답변을 작성하시기 전에 로그인 해주세요.