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

오늘날짜 넣기 질문 드립니다

고라니라니 1년 전 조회 7,151

현재 로그인 체크로 로그인할때마다 현재날짜를 mb_1에 저장중입니다.

 

근데 이렇게 하니 로그인을 안하면 현재날짜로 안되는 치명적(?)인 단점이 있어서 ...

 

회원모두 매일 오늘날짜로 업데이트 되도록 넣어주고 싶은데 

하루 1회 mb_1에 오늘날짜가 업데이트 되어 들어갈수있도록 할수있는 방법 있을까요 ?

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

답변 3개

1년 전

[답변 수정 07-18 10:28:00]

 

extend 폴더에 member_today.extend.php 파일을 만들어 다음 코드를 넣어주세요

 

</p>

<p><?php</p>

<p>if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p> </p>

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

<p> </p>

<p>$sql_check = "SELECT COUNT(*) AS count FROM `{$g5['member_table']}` WHERE mb_1 = '$today'";</p>

<p>$result = sql_fetch($sql_check);</p>

<p> </p>

<p>if($result['count'] !== 0){</p>

<p>    return;</p>

<p>}</p>

<p> </p>

<p>// 만약 값이 없다면 업데이트를 수행합니다.</p>

<p>if ($result['count'] == 0) {</p>

<p>    // 모든 회원의 mb_1 필드를 업데이트하는 쿼리</p>

<p>    $sql_update = "UPDATE `{$g5['member_table']}` SET mb_1 = '$today'";</p>

<p>    sql_query($sql_update);</p>

<p>}</p>

<p>

 

이렇게 되면 누군가 홈페이지 접속하게 되면, 쿼리를 실행합니다.

 

체크 방식은 오늘 날짜가 mb_1 에 저장값과 다르다면 오늘 날짜 그게 아니라면 실행하지 않습니다.

 

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

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

1년 전

보통 Linux crontab 또는 Windows Task Scheduler 와 같은

스케줄링 도구를 활용하는 방법이 많이 사용됩니다.

 

다른 방법으로는 꼭 하루1회일 필요가 없다면, 전체 업데이트 방법을 선택하지 않을수 있다면

발생된 로그인 유저에 대해서만 업데이트를 해주는 방법이 있는데

이는 실제 접근하는 유저만을 대상으로 하는 최소한의 DML 만 발생시키기 때문에

서버 운영 성능 향상에 도움이 됩니다.

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

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

https://cron-job.org 무료 크론탭 사이트 입니다. 여기서 설정하시면 됩니다.

 

만약 내 사이트가 1.com 이면 1.com/cron.php 임의로 만들어서 해당 cron.php 파일에서 mb_1에 현재날자 넣는거 코드 짜시면 됩니다. 1.com/cron.php 파일을 저 위 사이트에서 1시간마다 또는 하루마다 등 설정해서 크론사이트에서 우리사이트 해당 파일로 접속을 하게합니다   

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

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

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

로그인