링크 클릭 시 포인트 지급 게시판 제한 시간 변경 문의
본문
https://amina.co.kr/bbs/board.php?bo_table=skin_member&wr_id=3790
위 링크에 있는 아미나용 게시판입니다.
스킨헤드에서 86400초를 10초로 변경 후 테스트 해보았는데 10초 이후에도 계속 포인트 지급 제한이 걸립니다. 원래 24시간인데 24시간보다 더 지나서도 계속 제한이 걸립니다. 시간 변경시 제대로 작동을 안함 ㅠ
어떻게 해야할까요?
최종 적으로는 게시글 작성시 시간을 설정하고 싶은데 각 게시글에 포인트 지급 되는 링크 클릭 제한을 둘수있을까요?
답변 1
예를 들어 다음과 같이 해볼 수 있을 것 같습니다.
참고하셔서 실제 상황에 맞게 로직을 구현 하시면 되지 않을까 합니다.
<?php
class 포인트지급시스템 {
private $포인트_지급_제한_시간 = 10; // 초 단위로 설정, 예: 10초
public function 게시글작성($사용자, $게시글) {
$현재_시간 = time(); // 현재 시간을 초로 얻음
$게시글_작성_시간 = $사용자->게시글작성시간얻기($게시글);
if (($현재_시간 - $게시글_작성_시간) <= $this->포인트_지급_제한_시간) {
$this->포인트지급($사용자); // 포인트 지급 메서드 호출
return "포인트 지급 완료";
} else {
return "포인트 지급 제한 시간이 지났습니다.";
}
}
private function 포인트지급($사용자) {
// 포인트 지급 로직
$사용자->포인트증가(포인트_시스템->지급할_포인트);
}
}
class 사용자 {
private $이름;
private $포인트 = 0;
private $게시글_작성_시간 = array();
public function __construct($이름) {
$this->이름 = $이름;
}
public function 게시글작성($게시글) {
$현재_시간 = time(); // 현재 시간을 초로 얻음
$this->게시글_작성_시간[$게시글] = $현재_시간; // 게시글 작성 시간 기록
}
public function 게시글작성시간얻기($게시글) {
return isset($this->게시글_작성_시간[$게시글]) ? $this->게시글_작성_시간[$게시글] : 0;
}
public function 포인트증가($포인트_양) {
$this->포인트 += $포인트_양;
}
}
// 사용 예시
$포인트_시스템 = new 포인트지급시스템();
$사용자 = new 사용자("사용자1");
// 게시글 작성
$사용자->게시글작성("첫 번째 게시글");
// 게시글 작성 시간을 기반으로 포인트 지급 시도
echo $포인트_시스템->게시글작성($사용자, "첫 번째 게시글");
이렇게 하면 게시글 작성 시간을 확인하고, 일정 시간 내에 작성된 게시글에 대해 포인트를 지급하게 됩니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.