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

여분필드 초기화 채택완료

남해 1년 전 조회 1,910

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

 

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

 

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

 

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

 

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

 

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

 

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

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

답변 6개

채택된 답변
+20 포인트
1년 전

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개

남해
1년 전
마르스컴퍼티님 답변 감사합니다 알려주신 내용대로 2. 브라우저 실행 > ~/init.php 접속 > 잘 처리되었는지 db 에서 확인 까지 확인했습니다만 멤버수정에서 mb_1 초기화가 안되어있네요
마르스컴퍼니
1년 전
echo $sql;
로 sql 문제를 확인해서 수정하면 됩니다.
남해
1년 전
10분동안 머리짜매며 이것저것 시도해봤는데 안되네요 update g5_member set mb_1 = '' where mb_1 > '' and mb_1 < 2023-11-17 라고 뜨는데 정상적으로 출력된게 저는 맞는것같은데 mb_1 의 내용은 그대로 남아있네요
남해
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 에 작업 등록 하면될까요?
마르스컴퍼니
1년 전
where 날짜 비교 부분에서 따옴표가 빠졌네요.

(정정)
$sql = "
update {$g5['member_table']}
set mb_1 = ''
where mb_1 > ''
and mb_1 < '{$today}'
";
마르스컴퍼니
1년 전
작업 등록하면 됩니다..

처음 테스트를 위해.. '매 5분' 으로 테스트 확인을 먼저 해본 후..
스케쥴만 '매일 0시 10분' 정도로 변경하면 됩니다.
남해
1년 전
감사합니다 혹시 크론탭은 그러면 특정시간에 특정한 작업을 반복적으로 해야할때 사용하는 용도일까요?
마르스컴퍼니
1년 전
그렇습니다. https://rich-informer.tistory.com/21

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

R
1년 전

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

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

답변에 대한 댓글 1개

남해
1년 전
kaikai 답변감사합니다!

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

1년 전

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

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개

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

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

1년 전

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

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

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

답변에 대한 댓글 1개

남해
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개

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

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

1년 전

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

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

답변에 대한 댓글 1개

남해
1년 전
메이드님 답변감사합니다 !

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

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

로그인