| Server IP : 173.209.174.21 / Your IP : 216.73.216.89 Web Server : Apache/2.4.58 (Ubuntu) System : Linux wcfs-server 6.8.0-124-generic #124-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 13:00:45 UTC 2026 x86_64 User : nodor ( 1000) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/wcsd/School-alert/Backup files/ |
Upload File : |
<?php
session_start();
require 'config/db.php';
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Function to send email notifications
function sendAlertEmail($type, $location, $message, $recipients) {
$subject = "New Alert: $type";
$body = "An alert has been created.\n\n";
$body .= "Type: $type\n";
$body .= "Location: $location\n";
$body .= "Message: $message\n";
$body .= "Please check the alert system for more details.";
foreach ($recipients as $recipient) {
mail($recipient, $subject, $body, "From: alerts@yourdomain.com");
}
}
// Check if the user is logged in and has admin privileges
if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'admin') {
header('Location: dashboard.php');
exit();
}
// Fetch districts and schools for the dropdown menu
$stmt = $pdo->prepare("
SELECT districts.district_id, districts.district_name, schools.school_id, schools.name AS school_name
FROM districts
JOIN schools ON districts.district_id = schools.district_id
ORDER BY districts.district_name, schools.name
");
$stmt->execute();
$districts = $stmt->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_ASSOC);
// Process form submission
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$school_id = $_POST['school_id'];
$type = $_POST['type'];
$location = $_POST['location'];
$message = $_POST['message'];
// Fetch notification emails for the selected school
$stmt = $pdo->prepare("SELECT notification_emails FROM schools WHERE school_id = ?");
$stmt->execute([$school_id]);
$school = $stmt->fetch(PDO::FETCH_ASSOC);
$recipients = array_map('trim', explode(',', $school['notification_emails']));
try {
// Insert alert into the database
$stmt = $pdo->prepare("INSERT INTO alerts (school_id, type, location, message, status) VALUES (?, ?, ?, ?, 'active')");
$stmt->execute([$school_id, $type, $location, $message]);
// Send email notification
sendAlertEmail($type, $location, $message, $recipients);
// Redirect to dashboard after successful alert creation
header('Location: dashboard.php');
exit();
} catch (PDOException $e) {
echo "Error: Could not create alert. " . $e->getMessage();
}
}
?>
<?php include __DIR__ . '/views/header.php'; ?>
<div class="form-container">
<h2>Create Alert</h2>
<form method="POST" action="create_alert.php">
<!-- Dropdown for selecting the school within a district -->
<label for="school_id">Select School:</label>
<select name="school_id" id="school_id" required>
<?php if ($districts): ?>
<?php foreach ($districts as $district_id => $schools): ?>
<optgroup label="<?= htmlspecialchars($schools[0]['district_name']) ?>">
<?php foreach ($schools as $school): ?>
<option value="<?= htmlspecialchars($school['school_id']) ?>">
<?= htmlspecialchars($school['school_name']) ?>
</option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>
<?php else: ?>
<option value="">No schools available</option>
<?php endif; ?>
</select>
<label for="type">Type:</label>
<select name="type" id="type" required>
<option value="lockdown">Lockdown</option>
<option value="evacuation">Evacuation</option>
<option value="shelter_in_place">Shelter in Place</option>
<option value="earthquake">Earthquake</option>
<option value="fire_drill">Fire Drill</option>
<option value="modified_lockdown">Modified Lockdown</option>
<option value="other">Other</option>
</select>
<label for="location">Location or Room:</label>
<input type="text" id="location" name="location" required>
<label for="message">Message:</label>
<textarea name="message" id="message" rows="5" required></textarea>
<button type="submit" class="submit-button">Create Alert</button>
</form>
</div>
<?php include __DIR__ . '/views/footer.php'; ?>