여분필드 초기화

여분필드 초기화

QA

여분필드 초기화

본문

여분필드 초기화 질문드립니다

 

mb_1 에 날짜가 들어가는데 해당 날짜가 지나게되면 초기화되게끔 하고싶습니다

 

크론탭으로 해야한다고 하는데 웹호스팅 사용중입니다

 

웹호스팅에서는 크론탭을 사용못하게되어있는것같아서

 

https://cron-job.org/en/ 외부적으로 크론탭을 실행할수있는게 있다고하여

 

사용해보려고하는데 어떤식으로 해야하는건지 감이 안잡히네요...ㅠ

 

해당방법 말고도 다른방법이 있다면 답변부탁드립니다.

이 질문에 댓글 쓰기 :

답변 6

1. /init.php 생성


<?php
include_once "common.php";
 
$today = date('Y-m-d');
$sql = "
    update {$g5['member_table']}
         set mb_1 = ''
     where mb_1 > ''
         and mb_1 < {$today}
";
sql_query($sql);
echo '!';

 

2. 브라우저 실행 > ~/init.php 접속 > 잘 처리되었는지 db 에서 확인

 

3. cron-job.org 에 작업 등록

URL : ~/init.php

실행 스케쥴 : 매일 0시 10분

※ https://rich-informer.tistory.com/21

마르스컴퍼티님 답변 감사합니다 알려주신 내용대로 2. 브라우저 실행 > ~/init.php 접속 > 잘 처리되었는지 db 에서 확인 까지 확인했습니다만 멤버수정에서 mb_1 초기화가 안되어있네요

10분동안 머리짜매며 이것저것 시도해봤는데 안되네요 update g5_member set mb_1 = '' where mb_1 > '' and mb_1 < 2023-11-17 라고 뜨는데 정상적으로 출력된게 저는 맞는것같은데 mb_1 의 내용은 그대로 남아있네요

<?php
include_once "common.php";

$today = date('Y-m-d');
sql_query("update {$g5['member_table']} set mb_1='' where mb_1<='$today' ");


echo '!';


이렇게 수정해버렸네요 이렇게 설정하니 잘되네요

이상태에서 3번작업대로 cron-job.org 에 작업 등록 하면될까요?

where 날짜 비교 부분에서 따옴표가 빠졌네요.

(정정)
$sql = "
    update {$g5['member_table']}
        set mb_1 = ''
    where mb_1 > ''
        and mb_1 < '{$today}'
";

작업 등록하면 됩니다..

처음 테스트를 위해.. '매 5분' 으로 테스트 확인을 먼저 해본 후..
스케쥴만 '매일 0시 10분' 정도로 변경하면 됩니다.

크론 필요없습니다. 누군가 접속하면 초기화를 한번 하면 됩니다

extend/default.config.php 또는 extend/user.config.php 둘 중 하나가 있으면 다음 내용을 넣으세요

 

$today = G5_TIME_YMD;

if($config['cf_1'] !=$today ){ //하루에 한번만 처리

sql_query("update {$g5['config_table']} set cf_1='$today' ");

 sql_query("update {$g5['member_table']} set mb_1='' where mb_1<='$today' ");

}

균이님 답변 감사합니다 알려주신대로 넣었을때 잘 처리되는것같습니다만 이게 하루에 한번 처리라고 되어있어서 언제 처리가되는걸까요? 12시 땡 자정에 처리가 하루에 한번씩 되는걸까요?

초기화 시키는 파일을 만들어서 서버에 업로드 합니다.
예를 들어 root에 abc.php(초기화 코드가 작성된 파일) 파일을 업로드 했다면
해당 파일의 경로는 도매인/abc.php 이고,
cron-job에서 스케쥴을 생성하시고, URL에 도매인/abc.php 를 적어주시면 됩니다.

예를 들어 다음과 같이 해 볼 수 있을 것 같습니다.


<?php
// 파일: reset_variable.php
// 변수 초기화
$mb_1 = date("Y-m-d"); // 현재 날짜로 초기화
// 여기에 초기화해야 할 다른 작업들을 추가할 수 있습니다.
// 결과 출력 (테스트용)
echo "변수 초기화가 완료되었습니다. mb_1 = $mb_1";
?>

 

1. cron-job.org에 로그인
2. 대시보드에서 "Add new cronjob" 또는 유사한 버튼을 클릭.
3. 크론 표현식으로 0 0 * * *을 설정하여 매일 자정에 실행되도록 함.
4. 실행할 명령으로 php /path/to/reset_variable.php를 입력함. 경로는 실제 파일 경로로 수정되어야 함,
5. 옵션을 설정하거나 테스트를 진행한 후, 저장합니다.

 

이렇게 하면 설정된 주기에 따라 초기화가 되지 않을까 합니다.

크론탭 방식 보다는 로그인한 member 의

개별row 만 업데이트 해주는 방식을 추천드립니다.

https://cron-job.org/en/ 
여기 사용 가능할꺼에요. 다만 본인 사이트에 넘겨주는 변수를 GET 방식으로 쓰셔야 할거에요.

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

회원로그인

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