Mini Shell
<?php
// ==========================================
// API สำหรับจัดการการลงทะเบียนผู้ใช้งาน
// ==========================================
header('Content-Type: application/json; charset=utf-8');
include 'db/database.php';
$action = isset($_POST['action']) ? $_POST['action'] : '';
// ===== 1. ดึงข้อมูลรายชื่อทั้งหมดจากตาราง user_confirm =====
if ($action == 'get_users_confirm') {
$search = isset($_POST['search']) ? mysqli_real_escape_string($link, $_POST['search']) : '';
if (!empty($search)) {
$sql = "SELECT id, name, last_name, position, agency FROM user_confirm
WHERE CONCAT(name, ' ', last_name) LIKE '%$search%'
ORDER BY name ASC LIMIT 20";
} else {
$sql = "SELECT id, name, last_name, position, agency FROM user_confirm
ORDER BY name ASC LIMIT 20";
}
$result = mysqli_query($link, $sql);
$data = array();
if ($result) {
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
}
echo json_encode(['status' => 'success', 'data' => $data]);
exit();
}
// ===== 2. ตรวจสอบ Username ซ้ำ =====
if ($action == 'check_username') {
$username = isset($_POST['username']) ? mysqli_real_escape_string($link, $_POST['username']) : '';
if (empty($username)) {
echo json_encode(['status' => 'error', 'message' => 'Username ว่าง']);
exit();
}
$sql = "SELECT COUNT(*) AS total FROM user WHERE username = '$username'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($result);
if ($row['total'] > 0) {
echo json_encode(['status' => 'error', 'message' => 'Username นี้มีผู้ใช้งานแล้ว']);
} else {
echo json_encode(['status' => 'success', 'message' => 'Username พร้อมใช้งาน']);
}
exit();
}
// ===== 3. ตรวจสอบชื่อเดียวกันในระบบว่าซ้ำกันหรือไม่ =====
if ($action == 'check_duplicate_name') {
$name = isset($_POST['name']) ? mysqli_real_escape_string($link, $_POST['name']) : '';
$last_name = isset($_POST['last_name']) ? mysqli_real_escape_string($link, $_POST['last_name']) : '';
if (empty($name) || empty($last_name)) {
echo json_encode(['status' => 'error', 'message' => 'ชื่อ หรือ นามสกุล ว่าง']);
exit();
}
$sql = "SELECT COUNT(*) AS total FROM user WHERE name = '$name' AND last_name = '$last_name'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($result);
if ($row['total'] > 0) {
echo json_encode(['status' => 'error', 'message' => 'ชื่อ และ นามสกุล นี้มีอยู่ในระบบแล้ว']);
} else {
echo json_encode(['status' => 'success', 'message' => 'ชื่อไม่ซ้ำ']);
}
exit();
}
// ===== 4. ลงทะเบียนผู้ใช้งานใหม่ =====
if ($action == 'register') {
$confirm_id = isset($_POST['confirm_id']) ? mysqli_real_escape_string($link, $_POST['confirm_id']) : '';
$username = isset($_POST['username']) ? mysqli_real_escape_string($link, $_POST['username']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$confirm_password = isset($_POST['confirm_password']) ? $_POST['confirm_password'] : '';
// ===== ตรวจสอบข้อมูล =====
if (empty($confirm_id)) {
echo json_encode(['status' => 'error', 'message' => 'กรุณาเลือกชื่อผู้ใช้ก่อนลงทะเบียน']);
exit();
}
if (empty($username)) {
echo json_encode(['status' => 'error', 'message' => 'กรุณากรอกชื่อผู้ใช้งาน']);
exit();
}
if (empty($password)) {
echo json_encode(['status' => 'error', 'message' => 'กรุณากรอกรหัสผ่าน']);
exit();
}
if (strlen($password) < 8) {
echo json_encode(['status' => 'error', 'message' => 'รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร']);
exit();
}
if ($password !== $confirm_password) {
echo json_encode(['status' => 'error', 'message' => 'รหัสผ่านและการยืนยันรหัสผ่านไม่ตรงกัน']);
exit();
}
// ===== ตรวจสอบ Username ซ้ำ =====
$check_user = "SELECT COUNT(*) AS total FROM user WHERE username = '$username'";
$res_check = mysqli_query($link, $check_user);
$row_check = mysqli_fetch_assoc($res_check);
if ($row_check['total'] > 0) {
echo json_encode(['status' => 'error', 'message' => 'Username นี้มีผู้ใช้งานแล้ว']);
exit();
}
// ===== ดึงข้อมูลจาก user_confirm =====
$sql_confirm = "SELECT name, last_name, position, agency FROM user_confirm WHERE id = '$confirm_id'";
$res_confirm = mysqli_query($link, $sql_confirm);
if (!$res_confirm || mysqli_num_rows($res_confirm) == 0) {
echo json_encode(['status' => 'error', 'message' => 'ไม่พบข้อมูลผู้ใช้ที่เลือก']);
exit();
}
$row_confirm = mysqli_fetch_assoc($res_confirm);
$name = $row_confirm['name'];
$last_name = $row_confirm['last_name'];
$position = $row_confirm['position'];
$agency = $row_confirm['agency'];
// ===== ตรวจสอบชื่อซ้ำในตาราง user =====
$check_dup_name = "SELECT COUNT(*) AS total FROM user WHERE name = '$name' AND last_name = '$last_name'";
$res_dup = mysqli_query($link, $check_dup_name);
$row_dup = mysqli_fetch_assoc($res_dup);
if ($row_dup['total'] > 0) {
echo json_encode(['status' => 'warning', 'message' => 'ชื่อ และ นามสกุล นี้มีอยู่ในระบบแล้ว คุณต้องการดำเนินการต่อหรือไม่?']);
exit();
}
// ===== เข้ารหัสรหัสผ่าน =====
$salt = 'tikde78uj4ujuhlaoikiksakei896';
$hash_password = hash_hmac('sha256', $password, $salt);
// ===== บันทึกลงตาราง user =====
$sql_insert = "INSERT INTO user (name, last_name, position, agency, username, password, login_status, admin_status)
VALUES ('$name', '$last_name', '$position', '$agency', '$username', '$hash_password', '100', '0')";
if (mysqli_query($link, $sql_insert)) {
echo json_encode(['status' => 'success', 'message' => 'ลงทะเบียนสำเร็จ กรุณาเข้าสู่ระบบ']);
} else {
echo json_encode(['status' => 'error', 'message' => 'เกิดข้อผิดพลาดในการบันทึก: ' . mysqli_error($link)]);
}
exit();
}
echo json_encode(['status' => 'error', 'message' => 'Action ไม่ถูกต้อง']);
?>
Zerion Mini Shell 1.0