Gestionnaire de fichiers - Editer - /home/kridsana/webapp.cm.in.th/663012801/u66301280015/Final/save_attendance.php
Arrière
<?php session_start(); require_once 'config.php'; // ตรวจสอบการล็อกอิน if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'admin') { echo json_encode(['success' => false, 'message' => 'ไม่มีสิทธิ์เข้าถึง']); exit(); } // รับข้อมูล JSON จาก request $data = json_decode(file_get_contents('php://input'), true); if (!$data || !isset($data['groupCode']) || !isset($data['students'])) { echo json_encode(['success' => false, 'message' => 'ข้อมูลไม่ถูกต้อง']); exit(); } try { // เริ่ม transaction $conn->begin_transaction(); // เตรียม SQL สำหรับบันทึกข้อมูล $sql = "INSERT INTO attendance (studentCode, groupCode, status, date, created_by) VALUES (?, ?, ?, CURRENT_DATE, ?) ON DUPLICATE KEY UPDATE status = ?, updated_at = CURRENT_TIMESTAMP, updated_by = ?"; $stmt = $conn->prepare($sql); // วนลูปบันทึกข้อมูลแต่ละรายการ foreach ($data['students'] as $attendance) { $studentCode = $attendance['studentCode']; $status = $attendance['status']; $groupCode = $data['groupCode']; $stmt->bind_param("ssssss", $studentCode, $groupCode, $status, $_SESSION['user_id'], $status, $_SESSION['user_id'] ); if (!$stmt->execute()) { throw new Exception("Error saving attendance for student: " . $studentCode); } } // ยืนยัน transaction $conn->commit(); echo json_encode([ 'success' => true, 'message' => 'บันทึกข้อมูลสำเร็จ', 'count' => count($data['students']), 'groupCode' => $data['groupCode'] ]); } catch (Exception $e) { // ถ้าเกิดข้อผิดพลาด ให้ rollback transaction $conn->rollback(); echo json_encode([ 'success' => false, 'message' => 'เกิดข้อผิดพลาด: ' . $e->getMessage() ]); } // ปิดการเชื่อมต่อ $stmt->close(); $conn->close(); ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Génération de la page: 0.25 |
proxy
|
phpinfo
|
Réglages