File manager - Edit - /home/webapp69.cm.in.th/u69319090033/Shop/api/register.php
Back
<?php header('Content-Type: application/json; charset=utf-8'); require_once '../db.php'; if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['success' => false, 'message' => 'Method Not Allowed']); exit; } $input = json_decode(file_get_contents('php://input'), true); $fullName = trim($input['name'] ?? ''); $email = trim($input['email'] ?? ''); $password = trim($input['password'] ?? ''); $requestedRole = trim($input['role'] ?? 'user'); // ตรวจสอบค่า role ที่อนุญาต ป้องกันการเลือก admin เองจากฟอร์ม if (!in_array($requestedRole, ['user', 'seller'])) { $requestedRole = 'user'; } if (empty($fullName) || empty($email) || empty($password)) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'กรุณากรอกข้อมูลให้ครบถ้วน']); exit; } // ตรวจสอบว่ามีอีเมลนี้ในระบบแล้วหรือไม่ $check = $conn->prepare("SELECT user_id FROM users WHERE email = ?"); $check->bind_param('s', $email); $check->execute(); $result = $check->get_result(); if ($result->num_rows > 0) { http_response_code(409); echo json_encode(['success' => false, 'message' => 'อีเมลนี้ถูกใช้งานแล้ว']); exit; } $check->close(); // กำหนดสถานะตามสิทธิ์ที่ขอสมัคร // หากเลือก 'seller' => role = 'seller', seller_status = 'pending' (ต้องรอแอดมินอนุมัติ) // หากเลือก 'user' => role = 'user', seller_status = 'none' if ($requestedRole === 'seller') { $role = 'seller'; $sellerStatus = 'pending'; } else { $role = 'user'; $sellerStatus = 'none'; } $hashedPassword = password_hash($password, PASSWORD_BCRYPT); $stmt = $conn->prepare("INSERT INTO users (full_name, email, password, role, seller_status) VALUES (?, ?, ?, ?, ?)"); $stmt->bind_param('sssss', $fullName, $email, $hashedPassword, $role, $sellerStatus); if ($stmt->execute()) { $userId = $conn->insert_id; if ($requestedRole === 'seller') { // บันทึกลงตาราง seller_applications เพื่อให้แอดมินตรวจสอบได้จากหน้าคำขอ $shopName = "ร้านค้าของคุณ " . $fullName; $appStmt = $conn->prepare("INSERT INTO seller_applications (user_id, shop_name, status) VALUES (?, ?, 'pending')"); $appStmt->bind_param('is', $userId, $shopName); $appStmt->execute(); $appStmt->close(); // เมื่อสมัคร Seller สำเร็จ จะไม่ Auto Login ในสิทธิ์ผู้ขายทันที ให้ขึ้นแจ้งเตือนรออนุมัติ echo json_encode([ 'success' => true, 'message' => 'สมัครสำเร็จ กรุณารอการอนุมัติจากแอดมิน', 'pending_approval' => true, 'role' => 'seller', 'seller_status' => 'pending' ]); } else { // กรณี User ทั่วไป ทำการ Auto login ได้ทันที $_SESSION['user_id'] = $userId; $_SESSION['role'] = $role; $_SESSION['email'] = $email; $_SESSION['full_name'] = $fullName; $_SESSION['seller_status'] = $sellerStatus; echo json_encode([ 'success' => true, 'message' => 'ลงทะเบียนสำเร็จ', 'user' => [ 'id' => $userId, 'name' => $fullName, 'email' => $email, 'role' => $role, 'seller_status' => $sellerStatus ] ]); } } else { http_response_code(500); echo json_encode(['success' => false, 'message' => 'เกิดข้อผิดพลาดในการลงทะเบียน']); } $stmt->close(); ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings