2022-09-17 20:50:50 +09:00
|
|
|
<?php
|
2024-09-23 11:10:50 +09:00
|
|
|
include_once "./_common.php";
|
2022-09-17 20:50:50 +09:00
|
|
|
|
|
|
|
|
$g5['title'] = "로그인 검사";
|
|
|
|
|
|
2024-09-19 20:57:39 +09:00
|
|
|
$mb_id = trim($_POST['mb_id']);
|
2022-09-17 20:50:50 +09:00
|
|
|
$mb_password = trim($_POST['mb_password']);
|
|
|
|
|
|
2024-09-28 13:03:15 +09:00
|
|
|
EventHandler::triggerEvent("gnuboard.member.login_check_before", $mb_id);
|
|
|
|
|
|
2022-09-17 20:50:50 +09:00
|
|
|
if (!$mb_id || !$mb_password)
|
2024-09-19 20:57:39 +09:00
|
|
|
alert('회원아이디나 비밀번호가 공백이면 안됩니다.');
|
2022-09-17 20:50:50 +09:00
|
|
|
|
|
|
|
|
$mb = get_member($mb_id);
|
|
|
|
|
|
|
|
|
|
if (!$mb['mb_id'] || !login_password_check($mb, $mb_password, $mb['mb_password'])) {
|
2024-09-28 13:03:15 +09:00
|
|
|
EventHandler::triggerEvent("gnuboard.member.password_is_wrong", $mb);
|
|
|
|
|
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {
|
2024-09-19 20:57:39 +09:00
|
|
|
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);
|
|
|
|
|
alert('회원님의 아이디는 접근이 금지되어 있습니다.\n처리일 : ' . $date);
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {
|
2024-09-19 20:57:39 +09:00
|
|
|
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_leave_date']);
|
|
|
|
|
alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : ' . $date);
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {
|
2024-09-19 20:57:39 +09:00
|
|
|
$ckey = md5($mb['mb_ip'] . $mb['mb_datetime']);
|
|
|
|
|
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL . '/register_email.php?mb_id=' . $mb_id . '&ckey=' . $ckey);
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
2024-09-28 13:03:15 +09:00
|
|
|
EventHandler::triggerEvent("gnuboard.member.login_session_before", $mb, false); // false: is_social_login
|
|
|
|
|
|
2024-09-19 21:03:48 +09:00
|
|
|
@include_once $member_skin_path . '/login_check.skin.php';
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-10-05 05:49:57 +09:00
|
|
|
if (!(defined('SKIP_SESSION_REGENERATE_ID') && SKIP_SESSION_REGENERATE_ID)) {
|
|
|
|
|
session_regenerate_id(false);
|
|
|
|
|
if (function_exists('session_start_samesite')) {
|
|
|
|
|
session_start_samesite();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-17 20:50:50 +09:00
|
|
|
set_session('ss_mb_id', $mb['mb_id']);
|
2024-10-05 05:50:43 +09:00
|
|
|
generate_mb_key($mb);
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:57:39 +09:00
|
|
|
if ($config['cf_use_point']) {
|
|
|
|
|
$sum_point = get_point_sum($mb['mb_id']);
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:57:39 +09:00
|
|
|
$sql = " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '{$mb['mb_id']}' ";
|
|
|
|
|
sql_query($sql);
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($auto_login) {
|
2024-09-19 20:57:39 +09:00
|
|
|
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);
|
|
|
|
|
set_cookie('ck_mb_id', $mb['mb_id'], 86400 * 31);
|
|
|
|
|
set_cookie('ck_auto', $key, 86400 * 31);
|
2022-09-17 20:50:50 +09:00
|
|
|
} else {
|
2024-09-19 20:57:39 +09:00
|
|
|
set_cookie('ck_mb_id', '', 0);
|
|
|
|
|
set_cookie('ck_auto', '', 0);
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($url) {
|
2024-09-19 20:57:39 +09:00
|
|
|
check_url_host($url);
|
|
|
|
|
|
|
|
|
|
$link = urldecode($url);
|
|
|
|
|
if (preg_match("/\?/", $link))
|
|
|
|
|
$split = "&";
|
|
|
|
|
else
|
|
|
|
|
$split = "?";
|
|
|
|
|
|
|
|
|
|
foreach ($_POST as $key => $value) {
|
|
|
|
|
if ($key != 'mb_id' && $key != 'mb_password' && $key != 'x' && $key != 'y' && $key != 'url') {
|
|
|
|
|
$link .= "$split$key=$value";
|
|
|
|
|
$split = "&";
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
2024-09-19 20:57:39 +09:00
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$link = G5_URL;
|
2022-09-17 20:50:50 +09:00
|
|
|
}
|
|
|
|
|
|
2024-09-28 13:03:15 +09:00
|
|
|
EventHandler::triggerEvent("gnuboard.member.login_check", $mb, $link, false); // false: is_social_login
|
|
|
|
|
|
|
|
|
|
// 관리자로 로그인시 DATA 폴더의 쓰기 권한이 있는지 체크합니다. 쓰기 권한이 없으면 로그인을 못합니다.
|
|
|
|
|
if (is_admin($mb['mb_id']) && is_dir(G5_DATA_PATH . '/tmp/')) {
|
|
|
|
|
$tmp_data_file = G5_DATA_PATH . '/tmp/tmp-write-test-' . time();
|
|
|
|
|
$tmp_data_check = @fopen($tmp_data_file, 'w');
|
|
|
|
|
if ($tmp_data_check) {
|
|
|
|
|
if (!@fwrite($tmp_data_check, G5_URL)) {
|
|
|
|
|
$tmp_data_check = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (is_resource($tmp_data_check))
|
|
|
|
|
@fclose($tmp_data_check);
|
|
|
|
|
@unlink($tmp_data_file);
|
|
|
|
|
|
|
|
|
|
if (!$tmp_data_check) {
|
|
|
|
|
alert("data 폴더에 쓰기권한이 없거나 또는 웹하드 용량이 없는 경우\\n로그인을 못할수도 있으니, 용량 체크 및 쓰기 권한을 확인해 주세요.", $link);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-17 20:50:50 +09:00
|
|
|
goto_url($link);
|