Mini Shell

Direktori : /var/www/vhosts/ccp.ac.th/backup_full/httpdocs/fertilizer/
Upload File :
Current File : /var/www/vhosts/ccp.ac.th/backup_full/httpdocs/fertilizer/register_api.php

<?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