One Hat Cyber Team
Your IP :
216.73.216.55
Server IP :
5.189.175.239
Server :
Linux panel.gemx-ai.com 5.14.0-570.19.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 4 04:00:24 EDT 2025 x86_64
Server Software :
LiteSpeed
PHP Version :
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
farmersapp
/
church.farmersapp.store
/
Edit File:
members.php
<?php // members.php require_once 'config.php'; if (!isLoggedIn()) { redirect('index.php'); } // Handle form submission for new member if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_member'])) { $member_id = 'MEM' . str_pad(rand(1, 99999), 5, '0', STR_PAD_LEFT); $first_name = sanitize($_POST['first_name']); $last_name = sanitize($_POST['last_name']); $email = sanitize($_POST['email']); $phone = sanitize($_POST['phone']); $address = sanitize($_POST['address']); $date_of_birth = $_POST['date_of_birth']; $join_date = $_POST['join_date']; $marital_status = $_POST['marital_status']; $membership_status = $_POST['membership_status']; $stmt = $pdo->prepare("INSERT INTO members (member_id, first_name, last_name, email, phone, address, date_of_birth, join_date, marital_status, membership_status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([$member_id, $first_name, $last_name, $email, $phone, $address, $date_of_birth, $join_date, $marital_status, $membership_status]); $success = "Member added successfully!"; } // Get all members $members = $pdo->query("SELECT * FROM members ORDER BY join_date DESC")->fetchAll(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Members Management - Church MS</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> /* Add the same styles from dashboard.php plus additional styles for forms */ .page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; } .btn { padding: 12px 24px; border-radius: 10px; border: none; cursor: pointer; font-weight: 600; display: flex; align-items: center; gap: 8px; transition: all 0.3s ease; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(79, 70, 229, 0.3); } .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 2000; align-items: center; justify-content: center; } .modal-content { background: white; border-radius: 20px; width: 90%; max-width: 600px; max-height: 90vh; overflow-y: auto; animation: modalSlide 0.3s ease-out; } @keyframes modalSlide { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .modal-header { padding: 25px 30px; border-bottom: 1px solid var(--light); display: flex; justify-content: space-between; align-items: center; } .modal-header h3 { font-size: 20px; color: var(--dark); } .close-modal { background: none; border: none; font-size: 24px; cursor: pointer; color: var(--gray); } .modal-body { padding: 30px; } .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 25px; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; color: var(--dark); font-weight: 600; font-size: 14px; } .form-control { width: 100%; padding: 12px 15px; border: 2px solid var(--light); border-radius: 10px; font-size: 15px; transition: all 0.3s ease; } .form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } .alert { padding: 15px 20px; border-radius: 10px; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; } .alert-success { background: rgba(16, 185, 129, 0.1); color: var(--success); border-left: 4px solid var(--success); } .action-buttons { display: flex; gap: 10px; } .btn-sm { padding: 8px 15px; font-size: 13px; } .btn-edit { background: rgba(245, 158, 11, 0.1); color: var(--warning); } .btn-delete { background: rgba(239, 68, 68, 0.1); color: var(--danger); } </style> </head> <body> <div class="dashboard-container"> <!-- Include sidebar from dashboard.php --> <?php include 'sidebar.php'; ?> <div class="main-content"> <div class="top-bar"> <h1>Members Management</h1> <div class="user-menu"> <form action="logout.php" method="POST"> <button type="submit" class="logout-btn"> <i class="fas fa-sign-out-alt"></i> Logout </button> </form> </div> </div> <div class="page-header"> <h2>All Members</h2> <button class="btn btn-primary" onclick="openModal()"> <i class="fas fa-user-plus"></i> Add New Member </button> </div> <?php if (isset($success)): ?> <div class="alert alert-success"> <i class="fas fa-check-circle"></i> <?php echo $success; ?> </div> <?php endif; ?> <div class="recent-activity"> <table class="activity-table"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Email</th> <th>Phone</th> <th>Join Date</th> <th>Status</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($members as $member): ?> <tr> <td><?php echo $member['member_id']; ?></td> <td><?php echo $member['first_name'] . ' ' . $member['last_name']; ?></td> <td><?php echo $member['email']; ?></td> <td><?php echo $member['phone']; ?></td> <td><?php echo formatDate($member['join_date']); ?></td> <td> <span class="badge <?php echo $member['membership_status'] == 'Active' ? 'success' : 'pending'; ?>"> <?php echo $member['membership_status']; ?> </span> </td> <td> <div class="action-buttons"> <button class="btn btn-edit btn-sm"> <i class="fas fa-edit"></i> Edit </button> <button class="btn btn-delete btn-sm"> <i class="fas fa-trash"></i> Delete </button> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </div> <!-- Add Member Modal --> <div class="modal" id="addMemberModal"> <div class="modal-content"> <div class="modal-header"> <h3><i class="fas fa-user-plus"></i> Add New Member</h3> <button class="close-modal" onclick="closeModal()">×</button> </div> <div class="modal-body"> <form method="POST" action=""> <div class="form-grid"> <div class="form-group"> <label>First Name *</label> <input type="text" name="first_name" class="form-control" required> </div> <div class="form-group"> <label>Last Name *</label> <input type="text" name="last_name" class="form-control" required> </div> <div class="form-group"> <label>Email</label> <input type="email" name="email" class="form-control"> </div> <div class="form-group"> <label>Phone</label> <input type="tel" name="phone" class="form-control"> </div> <div class="form-group"> <label>Date of Birth</label> <input type="date" name="date_of_birth" class="form-control"> </div> <div class="form-group"> <label>Join Date *</label> <input type="date" name="join_date" class="form-control" required value="<?php echo date('Y-m-d'); ?>"> </div> <div class="form-group"> <label>Marital Status</label> <select name="marital_status" class="form-control"> <option value="Single">Single</option> <option value="Married">Married</option> <option value="Divorced">Divorced</option> <option value="Widowed">Widowed</option> </select> </div> <div class="form-group"> <label>Membership Status</label> <select name="membership_status" class="form-control"> <option value="Active">Active</option> <option value="Inactive">Inactive</option> <option value="Visitor">Visitor</option> </select> </div> </div> <div class="form-group"> <label>Address</label> <textarea name="address" class="form-control" rows="3"></textarea> </div> <div class="modal-footer"> <button type="button" class="btn" onclick="closeModal()">Cancel</button> <button type="submit" name="add_member" class="btn btn-primary"> <i class="fas fa-save"></i> Save Member </button> </div> </form> </div> </div> </div> <script> function openModal() { document.getElementById('addMemberModal').style.display = 'flex'; } function closeModal() { document.getElementById('addMemberModal').style.display = 'none'; } // Close modal when clicking outside window.onclick = function(event) { const modal = document.getElementById('addMemberModal'); if (event.target === modal) { closeModal(); } } </script> </body> </html>
Simpan