Gestionnaire de fichiers - Editer - /home/pack/api-secure/beacon_detected.php
Arrière
<?php /** * PACK BEACON – SECURE API * Beacon Detection API * Path: /api-secure/beacon_detected.php * * เมื่อมือถือพบ Beacon → เรียก API นี้ * ระบบจะ: * 1) ตรวจสอบ Token + Signature + Timestamp * 2) ตรวจสอบ beacon ว่าเป็นของ user คนไหน * 3) บันทึก Log * 4) ส่งผลลัพธ์ให้ Client ใช้ต่อ (เช่น แสดงรายการสิ่งของของวันนี้) */ require_once __DIR__ . "/config-secure.php"; require_once __DIR__ . "/auth-secure.php"; require_method("POST"); // ตรวจสอบ Secure Header list($raw, $input) = require_secure_json(); /* ============================================================ รับค่าจาก client ============================================================ */ $uuid = trim($input["uuid"] ?? ""); $major = intval($input["major"] ?? 0); $minor = intval($input["minor"] ?? 0); if ($uuid == "" || $major <= 0 || $minor <= 0) { api_json([ "status" => "error", "message" => "Missing uuid/major/minor" ]); } /* ============================================================ ตรวจสอบ Beacon ============================================================ */ $stmt = $conn->prepare(" SELECT beacons.*, users.fullname FROM beacons LEFT JOIN users ON beacons.user_id = users.id WHERE uuid = ? AND major = ? AND minor = ? "); $stmt->bind_param("sii", $uuid, $major, $minor); $stmt->execute(); $beacon = $stmt->get_result()->fetch_assoc(); if (!$beacon) { api_json([ "status" => "not_found", "message" => "Beacon not registered" ]); } $user_id = intval($beacon["user_id"]); /* ============================================================ บันทึก Log ============================================================ */ $message = "Beacon Detected → UUID: {$uuid}, Major: {$major}, Minor: {$minor}"; $stmt = $conn->prepare(" INSERT INTO logs (user_id, beacon_id, message) VALUES (?, ?, ?) "); $stmt->bind_param("iis", $user_id, $beacon["id"], $message); $stmt->execute(); /* ============================================================ หาวันนี้คือวันอะไร และรายการสิ่งของของวันนั้น ============================================================ */ $today = strtolower(date("l")); $day_map = [ "monday" => "monday", "tuesday" => "tuesday", "wednesday" => "wednesday", "thursday" => "thursday", "friday" => "friday", "saturday" => "saturday", "sunday" => "sunday" ]; $today_enum = $day_map[$today]; $stmt = $conn->prepare(" SELECT id, item_name FROM items WHERE user_id = ? AND day = ? "); $stmt->bind_param("is", $user_id, $today_enum); $stmt->execute(); $items_today = $stmt->get_result()->fetch_all(MYSQLI_ASSOC); /* ============================================================ ส่งผลลัพธ์กลับ ============================================================ */ api_json([ "status" => "success", "beacon" => [ "uuid" => $uuid, "major" => $major, "minor" => $minor, "location" => $beacon["location"], "owner" => $beacon["fullname"] ], "items_today" => $items_today, "total_items" => count($items_today), "message" => "Beacon detected & items loaded" ]);
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Génération de la page: 0.08 |
proxy
|
phpinfo
|
Réglages