commit
This commit is contained in:
160
kngil/bbs/join copy.php
Normal file
160
kngil/bbs/join copy.php
Normal file
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'].'/kngil/bbs/db_conn.php';
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
$action = $data['action'] ?? '';
|
||||
|
||||
/* =================================================
|
||||
아이디 중복확인 (fn_user_id_check 사용)
|
||||
================================================= */
|
||||
if ($action === 'check_id') {
|
||||
|
||||
$userId = trim($data['userId'] ?? '');
|
||||
|
||||
if (!preg_match('/^[a-zA-Z][a-zA-Z0-9]{3,11}$/', $userId)) {
|
||||
echo json_encode([
|
||||
'available' => false,
|
||||
'message' => '아이디 형식 오류'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT kngil.fn_user_id_check(:user_id)
|
||||
");
|
||||
$stmt->execute([
|
||||
':user_id' => $userId
|
||||
]);
|
||||
|
||||
$result = trim($stmt->fetchColumn());
|
||||
|
||||
if (strpos($result, 'SUCCESS') === 0) {
|
||||
echo json_encode([
|
||||
'available' => true,
|
||||
'message' => '사용 가능한 아이디입니다.'
|
||||
]);
|
||||
} else {
|
||||
echo json_encode([
|
||||
'available' => false,
|
||||
'message' => '이미 존재하는 아이디입니다.'
|
||||
]);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/* =================================================
|
||||
1. 필수값 검증
|
||||
================================================= */
|
||||
$required = [
|
||||
'memberType', // 회원유형
|
||||
'userId',
|
||||
'password',
|
||||
'userName',
|
||||
'email',
|
||||
'phone'
|
||||
];
|
||||
|
||||
foreach ($required as $k) {
|
||||
if (empty($data[$k])) {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => '필수 항목이 누락되었습니다.'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/* =================================================
|
||||
2. 회원유형 → co_bc 매핑
|
||||
================================================= */
|
||||
/*
|
||||
기업회원 : '1'
|
||||
개인회원 : '2'
|
||||
→ 실제 코드값은 여기서 통제
|
||||
*/
|
||||
$co_bc = ($data['memberType'] === '1')
|
||||
? 'CB100100' // 기업
|
||||
: 'CB100200'; // 개인
|
||||
|
||||
/* =================================================
|
||||
3. 비밀번호 규칙 + 암호화
|
||||
================================================= */
|
||||
if (!preg_match('/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*]).{12,}$/', $data['password'])) {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => '비밀번호 규칙이 올바르지 않습니다.'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$hashedPw = password_hash($data['password'], PASSWORD_DEFAULT);
|
||||
|
||||
/* =================================================
|
||||
4. 이메일 형식
|
||||
================================================= */
|
||||
if (!filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => '이메일 형식 오류'
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
|
||||
/* =================================================
|
||||
5. 프로시저 호출
|
||||
================================================= */
|
||||
try {
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT kngil.sp_member_i(
|
||||
:p_co_bc,
|
||||
:p_member_id,
|
||||
:p_user_pw,
|
||||
:p_member_nm,
|
||||
:p_email,
|
||||
:p_tel_no,
|
||||
:p_co_nm,
|
||||
:p_dept_nm,
|
||||
:p_cid
|
||||
) AS result
|
||||
");
|
||||
|
||||
$stmt->execute([
|
||||
':p_co_bc' => $co_bc,
|
||||
':p_member_id' => $data['userId'],
|
||||
':p_user_pw' => $hashedPw,
|
||||
':p_member_nm' => $data['userName'],
|
||||
':p_email' => $data['email'],
|
||||
':p_tel_no' => $data['phone'],
|
||||
':p_co_nm' => $data['company'] ?? null,
|
||||
':p_dept_nm' => $data['department'] ?? null,
|
||||
':p_cid' => $data['userId']
|
||||
]);
|
||||
|
||||
$result = $stmt->fetchColumn();
|
||||
|
||||
if ($result === 'SUCCESS') {
|
||||
echo json_encode([
|
||||
'success' => true
|
||||
]);
|
||||
} else {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => '서버 오류'
|
||||
]);
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => 'Invalid action'
|
||||
]);
|
||||
exit;
|
||||
Reference in New Issue
Block a user