OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
reader
/
znew1aws-ses
/
log
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/19/2025 10:07:15 AM
rwxr-xr-x
📄
data.json
1.8 KB
03/03/2025 08:25:28 AM
rw-r--r--
📄
edit_list.php
12.66 KB
05/19/2025 10:07:15 AM
rw-r--r--
📄
sns_bounces.log
4.53 MB
03/03/2025 08:25:29 AM
rw-r--r--
📄
sns_click.log
214.13 KB
03/03/2025 08:25:28 AM
rw-r--r--
📄
sns_complaints.log
60.01 KB
03/03/2025 08:25:29 AM
rw-r--r--
📄
sns_deliveries.log
44.43 MB
03/03/2025 08:25:38 AM
rw-r--r--
📄
sns_open.log
412.93 KB
03/03/2025 08:25:30 AM
rw-r--r--
Editing: edit_list.php
Close
<?php ini_set('display_startup_errors', 1); include '../inc/validate.logged.php'; include 'db.php'; function show_email_details($conn, $id) { $stmt = $conn->prepare("SELECT sc.id, sc.name, sc.email FROM subscribers sc INNER JOIN list l ON l.id = sc.list_id WHERE sc.list_id = ?"); $stmt->bind_param("i", $id); $stmt->execute(); $result = $stmt->get_result(); $rows = array(); while ($row = $result->fetch_assoc()) { $rows[] = $row; } $stmt->close(); return $rows; } if (isset($_GET['id'])) { $list_id = $conn->real_escape_string($_GET['id']); // Fetch current data $sql = "SELECT list_name, active FROM list WHERE id='$list_id' AND user_id='$gUserId'"; $result = $conn->query($sql); if ($result->num_rows == 1) { $row = $result->fetch_assoc(); } else { echo "List not found"; exit; } } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $list_id = $conn->real_escape_string($_POST['id']); $active = $conn->real_escape_string($_POST['active']); $list_name = $conn->real_escape_string($_POST['list_name']); // Start transaction $conn->begin_transaction(); // try { // // Update the list // $sql = "UPDATE list SET list_name='$list_name', active='$active' WHERE id='$list_id' AND user_id='$gUserId'"; // $conn->query($sql); // // Delete existing email details // $sql = "DELETE FROM subscribers WHERE list_id='$list_id'"; // $conn->query($sql); // // Insert updated email details // if (isset($_POST['name']) && isset($_POST['email'])) { // $stmt = $conn->prepare("INSERT INTO subscribers (list_id, name, email) VALUES (?, ?, ?)"); // foreach ($_POST['name'] as $index => $name) { // $email = $_POST['email'][$index]; // $stmt->bind_param("iss", $list_id, $name, $email); // $stmt->execute(); // } // $stmt->close(); // } // // Commit transaction // $conn->commit(); // echo "<script>alert('Update successfully');</script>"; // header('Location: viewList.php'); // exit; // } catch (Exception $e) { // // Rollback transaction // $conn->rollback(); // echo "Error updating list: " . $conn->error; // } try { // Start transaction $conn->begin_transaction(); // Update the list $sql = "UPDATE list SET list_name=?, active=? WHERE id=? AND user_id=?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ssis", $list_name, $active, $list_id, $gUserId); if (!$stmt->execute()) { throw new Exception("Error updating list: " . $stmt->error); } $stmt->close(); // Fetch existing subscribers for the list $existingSubscribers = []; $sql = "SELECT id, email FROM subscribers WHERE list_id=?"; $stmt = $conn->prepare($sql); $stmt->bind_param("i", $list_id); $stmt->execute(); $result = $stmt->get_result(); if ($result) { while ($row = $result->fetch_assoc()) { $existingSubscribers[$row['email']] = $row['id']; } } else { throw new Exception("Error fetching existing subscribers: " . $stmt->error); } $stmt->close(); // Prepare statements for updates and inserts $updateStmt = $conn->prepare(" UPDATE subscribers SET name=? WHERE id=? "); $insertStmt = $conn->prepare(" INSERT INTO subscribers (list_id, name, email) VALUES (?, ?, ?) "); foreach ($_POST['name'] as $index => $name) { $email = $_POST['email'][$index]; if (isset($existingSubscribers[$email])) { // Existing subscriber, update $subscriberId = $existingSubscribers[$email]; $updateStmt->bind_param("si", $name, $subscriberId); if (!$updateStmt->execute()) { throw new Exception("Error updating subscriber: " . $updateStmt->error); } } else { // New subscriber, insert $insertStmt->bind_param("iss", $list_id, $name, $email); if (!$insertStmt->execute()) { throw new Exception("Error inserting subscriber: " . $insertStmt->error); } } } $updateStmt->close(); $insertStmt->close(); // Commit transaction $conn->commit(); echo "<script>alert('Update successfully');</script>"; header('Location: viewList.php'); exit; } catch (Exception $e) { // Rollback transaction $conn->rollback(); echo "Error updating list: " . $e->getMessage(); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Knobly Cream: Create • Reach • Measure</title> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"> <link rel="stylesheet" href="../inc/style.css"> <!-- Custom CSS --> <style> body { font-family: 'Roboto', sans-serif; background-color: #f4f6f9; } .container-fluid { padding: 20px; } .main-content { background: #fff; border-radius: 8px; padding: 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); } .btn-primary { background-color: #007bff; border-color: #007bff; } .btn-primary:hover { background-color: #0056b3; border-color: #004085; } .form-group label { font-weight: bold; } </style> <!-- jQuery and Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <!-- Chart.js --> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> </head> <body class="sb-nav-fixed"> <?php include "navbar.php"; ?> <div id="layoutSidenav"> <?php include 'sidebar.php'; ?> <div id="layoutSidenav_content"> <main> <div class="container-fluid"> <div class="main-content mt-5"> <div class="container"> <h2>Edit List</h2> <form method="post" action="edit_list.php"> <input type="hidden" name="id" value="<?php echo htmlspecialchars($list_id); ?>"> <div class="form-group"> <label for="list_name">List Name</label> <input type="text" class="form-control" id="list_name" name="list_name" value="<?php echo htmlspecialchars($row['list_name']); ?>" required> </div> <div class="form-group"> <label for="active">Active</label> <select class="form-control" id="active" name="active"> <option value="1" <?php echo ($row['active'] == 1) ? 'selected' : ''; ?>>Yes</option> <option value="0" <?php echo ($row['active'] == 0) ? 'selected' : ''; ?>>No</option> </select> </div> <div class="form-group"> <label for="email_details">Email Details</label> <div id="email_details"> <?php foreach (show_email_details($conn, $list_id) as $index => $email_detail) { ?> <div class="row mb-2 email-row"> <div class="col"> <input type="text" class="form-control" name="name[]" value="<?php echo htmlspecialchars($email_detail['name']); ?>" placeholder="Name" required> </div> <div class="col"> <input type="email" class="form-control" name="email[]" value="<?php echo htmlspecialchars($email_detail['email']); ?>" placeholder="Email" required> </div> <div class="col-auto"> <button type="button" class="btn btn-danger btn-sm remove-email">X</button> </div> </div> <?php } ?> </div> <button type="button" class="btn btn-secondary" id="add_email_row">Add Email</button> </div> <button type="submit" class="btn btn-primary">Update</button> </form> <script> document.addEventListener('DOMContentLoaded', (event) => { // Function to add a new email row document.getElementById('add_email_row').addEventListener('click', function() { var container = document.getElementById('email_details'); var index = container.children.length; // Get the current number of rows var row = document.createElement('div'); row.className = 'row mb-2 email-row'; row.innerHTML = ` <div class="col"> <input type="text" class="form-control" name="name[]" placeholder="Name" required> </div> <div class="col"> <input type="email" class="form-control" name="email[]" placeholder="Email" required> </div> <div class="col-auto"> <button type="button" class="btn btn-danger btn-sm remove-email">X</button> </div> `; container.appendChild(row); }); // Function to remove an email row document.getElementById('email_details').addEventListener('click', function(event) { if (event.target.classList.contains('remove-email')) { var row = event.target.closest('.email-row'); row.parentNode.removeChild(row); } }); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.remove-email').forEach(function(button) { button.addEventListener('click', function() { this.closest('.email-row').remove(); }); }); }); </script> </div> </div> </div> </main> <footer class="py-2 bg-light"> <div class="container-fluid" style="display: flex; justify-content: right;"> <div class="text-muted text-right small">© <?= date('Y') ?>, Knobly Consulting</div> </div> </footer> </div> </div> </body> </html>