테스트 사이트 - 개발 중인 베타 버전입니다

여분필드 초기화 채택완료

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

 

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

 

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

 

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

 

https://cron-job.org/en/" rel="nofollow noreferrer noopener" target="_blank">https://cron-job.org/en/ 외부적으로 크론탭을 실행할수있는게 있다고하여

 

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

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

채택된 답변
+20 포인트

1. /init.php 생성

</p>

<p><?php</p>

<p>include_once "common.php";</p>

<p> </p>

<p>$today = date('Y-m-d');

$sql = "

    update {$g5['member_table']}

         set mb_1 = ''

     where mb_1 > ''

         and mb_1 < {$today}

";

sql_query($sql);</p>

<p>echo '!';</p>

<p>

 

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

 

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

URL : ~/init.php

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 8개

마르스컴퍼티님 답변 감사합니다 알려주신 내용대로 2. 브라우저 실행 > ~/init.php 접속 > 잘 처리되었는지 db 에서 확인 까지 확인했습니다만 멤버수정에서 mb_1 초기화가 안되어있네요
echo $sql;
로 sql 문제를 확인해서 수정하면 됩니다.
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분' 정도로 변경하면 됩니다.
감사합니다 혹시 크론탭은 그러면 특정시간에 특정한 작업을 반복적으로 해야할때 사용하는 용도일까요?
그렇습니다. https://rich-informer.tistory.com/21

댓글을 작성하려면 로그인이 필요합니다.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

kaikai 답변감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

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

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' ");

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

균이님 답변 감사합니다 알려주신대로 넣었을때 잘 처리되는것같습니다만 이게 하루에 한번 처리라고 되어있어서 언제 처리가되는걸까요? 12시 땡 자정에 처리가 하루에 한번씩 되는걸까요?
누군가 홈페이지 접속해 페이지를 로드하면 위 코드가 실행됩니다.

댓글을 작성하려면 로그인이 필요합니다.

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

배르만님 답변 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

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

</p>

<p><?php

// 파일: reset_variable.php</p>

<p>// 변수 초기화

$mb_1 = date("Y-m-d"); // 현재 날짜로 초기화</p>

<p>// 여기에 초기화해야 할 다른 작업들을 추가할 수 있습니다.</p>

<p>// 결과 출력 (테스트용)

echo "변수 초기화가 완료되었습니다. mb_1 = $mb_1";

?>

 

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

웹메이킹님 답변감사합니다 다른분이 남겨주신 방법으로 우선 해결했으나 해당방법도 한번 테스트해봐야겠네요 감사합니다 ㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

메이드님 답변감사합니다 !

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고