<?php
// strongswan_find_password.php - 앱 전용 비밀번호 찾기 API
header('Content-Type: application/json; charset=utf-8');
include_once('./_common.php');
include_once(G5_LIB_PATH.'/mailer.lib.php');

function pw_out($arr) { echo json_encode($arr, JSON_UNESCAPED_UNICODE); exit; }

$mb_email = isset($_POST['mb_email']) ? trim($_POST['mb_email']) : '';
if (!$mb_email) pw_out(['result' => 'error', 'message' => '이메일을 입력해 주세요.']);
$mb_email = get_email_address($mb_email);
if (!$mb_email) pw_out(['result' => 'error', 'message' => '올바른 이메일 형식이 아닙니다.']);

$mb = sql_fetch("SELECT mb_no, mb_id, mb_name, mb_email, mb_leave_date FROM {$g5['member_table']} WHERE mb_email = '" . sql_escape_string($mb_email) . "' LIMIT 1");
if (!$mb['mb_id'] || $mb['mb_leave_date'])
    pw_out(['result' => 'error', 'message' => '해당 이메일로 가입된 계정이 없습니다.']);
if (function_exists('is_admin') && is_admin($mb['mb_id']))
    pw_out(['result' => 'error', 'message' => '관리자 계정은 처리할 수 없습니다.']);

$change_password = rand(100000, 999999);
$mb_lost_certify = get_encrypt_string($change_password);
$mb_nonce = md5(pack('V*', rand(), rand(), rand(), rand()));

sql_query("UPDATE {$g5['member_table']} SET mb_lost_certify = '" . sql_escape_string("$mb_nonce $mb_lost_certify") . "' WHERE mb_id = '" . sql_escape_string($mb['mb_id']) . "'", false);

$href = G5_BBS_URL . '/password_lost_certify.php?mb_no=' . (int)$mb['mb_no'] . '&mb_nonce=' . urlencode($mb_nonce);
$subject = "[" . $config['cf_title'] . "] 비밀번호 재설정 안내";

ob_start();
@include_once($misc_skin_path . '/password_lost_mail.php');
$content = ob_get_contents();
ob_end_clean();

if (!trim($content)) {
    $content = "안녕하세요, {$mb['mb_name']}님.<br><br>"
             . "아이디: <strong>{$mb['mb_id']}</strong><br><br>"
             . "아래 링크를 클릭하여 비밀번호를 재설정해 주세요:<br>"
             . "<a href=\"{$href}\">{$href}</a>";
}

mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);

pw_out(['result' => 'success', 'message' => '비밀번호 재설정 링크를 이메일로 발송했습니다.\n이메일을 확인해 주세요.']);
