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 = "[email protected]"; // 보내는 사람 이메일 주소
$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개 / 댓글 2개
생성 시각이 있다면 굳이 초기화? 할 필요가 없습니다.
5분후(마감 시각)을 조건으로 처리하면 되니까요.
불필요한 데이터를 삭제하는 거라면
하루 한 번 처리해도 되지 않을까요?
답변을 작성하려면 로그인이 필요합니다.
