|
1 | 1 | <?php
|
2 |
| -try { |
3 |
| - // Check if required POST fields are set and not empty |
4 |
| - if (empty($_POST['roll_number']) || empty($_POST['name']) || empty($_POST['date'])) { |
5 |
| - throw new Exception('All fields are required.'); |
6 |
| - } |
7 |
| - |
8 |
| - // Connect to the SQLite database |
9 |
| - $db = new PDO('sqlite:records.db'); |
10 |
| - |
11 |
| - // Set error mode to exceptions |
12 |
| - $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
13 |
| - |
| 2 | +if ($_SERVER["REQUEST_METHOD"] == "POST") { |
14 | 3 | // Sanitize user input
|
15 | 4 | $roll_number = filter_input(INPUT_POST, 'roll_number', FILTER_SANITIZE_STRING);
|
16 | 5 | $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
|
17 | 6 | $date = filter_input(INPUT_POST, 'date', FILTER_SANITIZE_STRING);
|
18 | 7 |
|
19 |
| - // Prepare an SQL statement for safe insertion |
20 |
| - $stmt = $db->prepare("INSERT INTO students (roll_number, name, date) VALUES (:roll_number, :name, :date)"); |
| 8 | + try { |
| 9 | + // Connect to SQLite database |
| 10 | + $db = new PDO('sqlite:records.db'); |
| 11 | + $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
21 | 12 |
|
22 |
| - // Bind values to the parameters |
23 |
| - $stmt->bindParam(':roll_number', $roll_number); |
24 |
| - $stmt->bindParam(':name', $name); |
25 |
| - $stmt->bindParam(':date', $date); |
| 13 | + // Check if the record already exists for the given roll_number and date |
| 14 | + $stmt_check = $db->prepare('SELECT * FROM students WHERE roll_number = :roll_number AND date = :date'); |
| 15 | + $stmt_check->bindParam(':roll_number', $roll_number); |
| 16 | + $stmt_check->bindParam(':date', $date); |
| 17 | + $stmt_check->execute(); |
| 18 | + $existing_record = $stmt_check->fetch(PDO::FETCH_ASSOC); |
26 | 19 |
|
27 |
| - // Execute the statement and check for success |
28 |
| - if ($stmt->execute()) { |
29 |
| - echo "Attendance submitted successfully."; |
30 |
| - } else { |
31 |
| - echo "Error submitting attendance."; |
| 20 | + if ($existing_record) { |
| 21 | + echo '<p>Attendance already exists for roll number ' . htmlspecialchars($roll_number) . ' on ' . htmlspecialchars($date) . '.</p>'; |
| 22 | + } else { |
| 23 | + // Record does not exist, insert a new record |
| 24 | + $stmt_insert = $db->prepare('INSERT INTO students (roll_number, name, date) VALUES (:roll_number, :name, :date)'); |
| 25 | + $stmt_insert->bindParam(':roll_number', $roll_number); |
| 26 | + $stmt_insert->bindParam(':name', $name); |
| 27 | + $stmt_insert->bindParam(':date', $date); |
| 28 | + $stmt_insert->execute(); |
| 29 | + echo '<p>Attendance recorded successfully for roll number ' . htmlspecialchars($roll_number) . ' on ' . htmlspecialchars($date) . '.</p>'; |
| 30 | + } |
| 31 | + } catch (PDOException $e) { |
| 32 | + echo '<p>An error occurred: ' . $e->getMessage() . '</p>'; |
32 | 33 | }
|
33 |
| -} catch (Exception $e) { |
34 |
| - // Log the error message |
35 |
| - error_log($e->getMessage()); |
36 |
| - echo "An error occurred: " . htmlspecialchars($e->getMessage()); |
37 |
| -} catch (PDOException $e) { |
38 |
| - // Log the error message |
39 |
| - error_log($e->getMessage()); |
40 |
| - echo "An error occurred while submitting attendance."; |
41 | 34 | }
|
42 | 35 | ?>
|
0 commit comments