5분이 지나면 데이터가 지워지는 코드가 작동을 안 합니다. 코드 좀 봐주세요.

5분이 지나면 데이터가 지워지는 코드가 작동을 안 합니다. 코드 좀 봐주세요.

QA

5분이 지나면 데이터가 지워지는 코드가 작동을 안 합니다. 코드 좀 봐주세요.

본문

안녕하세요? 항상 도움 잘 받고 있습니다.

제가 랜덤 인증번호를 생성해서 DB 에 업데이트 하고 메일로 보내는 기능을 구현했는데

5분 뒤에 이 인증번호가 '' 가 되어야 하고 인증번호 생성시간도 0000-00-00 00:00:00 이 되게 하려고 하는데 어떻게 해야하나요?
아래는 제가 만든 코드 입니다.
 

<?php

include_once('./_common.php');

include_once(G5_LIB_PATH.'/mailer.lib.php');

 

if(isset($_POST['login_id']) && isset($_POST['mb_email'])) {

    $login_id = $_POST['login_id'];

    $mb_email = $_POST['mb_email'];

 

    $sql = "SELECT * FROM g5_member WHERE mb_id = '$login_id'";

    $row = sql_fetch($sql);

   

    if (!$row['mb_id']) {

        echo "id_not_found";

    } else if ($row['mb_email'] !== $mb_email) {

        echo "email_not_found";

    } else {

        $certification_number = rand(100000, 999999); // 랜덤 인증번호 생성

 

        $sql2 = "UPDATE g5_member SET mb_certification_number = '$certification_number', mb_certification_number_creation_time = '".G5_TIME_YMDHIS."' WHERE mb_email = '$mb_email' ";

        sql_query($sql2);

 

        // 이메일 발송 처리

        $name = "마케팅코리아"; // 보내는 사람 이름

        $fmail = "*** 개인정보보호를 위한 이메일주소 노출방지 ***"; // 보내는 사람 이메일 주소

        $to = $mb_email;

        $subject = "인증번호 안내";

        $content = "인증번호는 $certification_number 입니다.";

 

        $mailer_error = mailer($name, $fmail, $to, $subject, $content, 1); // mailer 함수 호출 후 결과 저장

 

        if ($mailer_error) {

            echo "success";

        } else {

            echo "error";

        }

    }

 

    exit();

}

 

$expirationTime = date('Y-m-d H:i:s', strtotime('-5 minutes'));

$sql = "UPDATE g5_member SET mb_certification_number_creation_time = '0000-00-00 00:00:00', mb_certification_number = '' WHERE mb_certification_number_creation_time < '$expirationTime'";

sql_query($sql);

 

?>

 

이 질문에 댓글 쓰기 :

답변 5

생성 시각이 있다면 굳이 초기화? 할 필요가 없습니다.

5분후(마감 시각)을 조건으로 처리하면 되니까요.

 

불필요한 데이터를 삭제하는 거라면

하루 한 번 처리해도 되지 않을까요?

해당은 누가 인증을 해야지 마지막에 시간을 체크하고 리셋을 하겠네요. 따로 리셋하는 페이지를 만드시고 크론탭을 이용해서 일정 시간마다 체크를 하셔야 할거 같습니다.

본문 코드가 실행되야 막줄이 실행될텐데요

인증받는 사람들이 많으면 모르겠지만 뜨믄뜨믄있으면....

그래서 블랙캣77님 답변은

막줄을 따로 reset.php 라고 만들고

console.cron-job.org  이런 사이트에서

예를 들어 1분마다 reset.php를 실행하게 해주면 된다는 뜻입니다.

예:

3732213272_1692666385.7422.png

 

 

글쓰는데 오래거렸더니 아래 좋은 댓글이 많이 달렸네요.

제 생각에도 엑스엠엘님 댓글이 정답이라 봅니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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