OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
aws-ses
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/28/2024 11:03:35 AM
rwxrwxr-x
📄
.browserslistrc
208 bytes
08/14/2024 10:49:55 AM
rw-r--r--
📄
.gitignore
42 bytes
08/14/2024 10:49:55 AM
rw-r--r--
📄
.htaccess
803 bytes
08/14/2024 10:49:55 AM
rw-r--r--
📄
.htaccess.swp
12 KB
08/14/2024 10:49:55 AM
rw-r--r--
📄
.travis.yml
199 bytes
08/14/2024 10:49:55 AM
rw-r--r--
📄
addList.php
4.7 KB
08/14/2024 10:49:55 AM
rw-r--r--
📄
allTemplates.php
5 KB
08/14/2024 10:49:55 AM
rw-r--r--
📄
bbsns_subscribe.php
5.14 KB
08/14/2024 10:49:55 AM
rw-r--r--
📄
bcreateList.php
9.61 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
blacklist.php
14.07 KB
08/22/2024 05:43:02 AM
rw-r--r--
📄
bounceViewList.php
7.67 KB
08/22/2024 05:07:15 AM
rw-r--r--
📄
bounce_handler.php
5 KB
08/23/2024 09:54:48 AM
rw-rw-rw-
📄
bprocess_emails.php
6.73 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
checkNotificationTopics.php
5.11 KB
08/14/2024 10:49:56 AM
rw-r--r--
📁
check_identity
-
08/14/2024 10:49:58 AM
rwxr-xr-x
📄
checknotif.php
1.01 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
ckeditor.php
2.14 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
click_handler.php
1.75 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
combined.php
11.28 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
complaintsViewList.php
6.8 KB
08/22/2024 05:20:43 AM
rw-r--r--
📄
complaints_handler.php
2.89 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
composer.json
200 bytes
08/14/2024 10:49:56 AM
rw-r--r--
📄
composer.lock
39.12 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
createList.php
11.23 KB
08/21/2024 11:56:25 AM
rw-r--r--
📁
credentials
-
08/14/2024 10:49:58 AM
rwxr-xr-x
📄
csv.php
10.1 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
db.php
1000 bytes
08/14/2024 10:49:56 AM
rw-r--r--
📄
delete_list.php
565 bytes
08/14/2024 10:49:56 AM
rw-r--r--
📄
delete_users.php
435 bytes
08/20/2024 04:49:00 AM
rw-r--r--
📄
deliveryViewList.php
6.6 KB
08/22/2024 05:16:19 AM
rw-r--r--
📄
delivery_handler.php
3.25 KB
08/14/2024 10:49:56 AM
rw-r--r--
📄
download_Complaints.php
974 bytes
08/14/2024 10:49:57 AM
rw-r--r--
📄
download_bounces.php
1007 bytes
08/14/2024 10:49:57 AM
rw-r--r--
📄
download_delivered.php
971 bytes
08/14/2024 10:49:57 AM
rw-r--r--
📄
download_unique_open.php
1.6 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
edit_list.php
10.01 KB
11/11/2024 12:41:09 PM
rw-r--r--
📄
feedback.php
1.71 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
footer.php
4.2 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
groupchatnavbar.php
607 bytes
09/01/2024 07:28:02 AM
rw-r--r--
📄
housekeeping.php
10.6 KB
08/20/2024 06:05:30 AM
rw-r--r--
📄
index.php
8.12 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
insert_list.php
2.64 KB
08/14/2024 10:49:57 AM
rw-r--r--
📁
log
-
08/14/2024 10:50:00 AM
rwxr-xr-x
📄
navbar.php
1.63 KB
08/20/2024 04:55:53 AM
rw-r--r--
📄
newCompaign.php
7.59 KB
08/21/2024 11:50:50 AM
rw-r--r--
📄
new_table.php
13.36 KB
10/07/2024 11:02:11 AM
rw-r--r--
📄
open_handler.php
1.75 KB
08/14/2024 10:49:57 AM
rw-r--r--
📁
process
-
08/20/2024 05:01:41 AM
rwxr-xr-x
📄
process_emails.php
10.36 KB
08/22/2024 05:44:39 AM
rw-r--r--
📄
real-recipients.csv
39.48 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
resubscribe.php
5.38 KB
08/19/2024 11:32:36 AM
rw-r--r--
📄
sample.csv
55 bytes
08/14/2024 10:49:57 AM
rw-r--r--
📄
send_email.php
987 bytes
08/14/2024 10:49:57 AM
rw-r--r--
📄
send_email_campaignGraph.php
2.24 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
sendgrid.php
3.62 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
showListMembers.php
12.44 KB
08/22/2024 05:39:43 AM
rw-r--r--
📄
showcase.php
7.93 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
sidebar.php
3.12 KB
09/01/2024 07:23:43 AM
rw-r--r--
📄
sns_subscribe.php
5.25 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
submit_form.php
2.48 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
test-mail.csv
337 bytes
08/14/2024 10:49:58 AM
rw-r--r--
📄
test.php
969 bytes
08/14/2024 10:49:58 AM
rw-r--r--
📄
test_process_emails.php
1.91 KB
08/14/2024 10:49:58 AM
rw-r--r--
📄
unsubscribe.php
3.36 KB
08/19/2024 11:32:22 AM
rw-r--r--
📄
upload_image.php
606 bytes
08/14/2024 10:49:58 AM
rw-r--r--
📁
uploads
-
03/20/2025 06:55:44 AM
rwxrwxrwx
📁
vendor
-
08/14/2024 11:08:43 AM
rwxr-xr-x
📄
verify.html
486 bytes
08/14/2024 10:49:58 AM
rw-r--r--
📄
verify.php
3.12 KB
08/14/2024 10:49:58 AM
rw-r--r--
📄
verify_email.php
5.12 KB
08/14/2024 10:49:58 AM
rw-r--r--
📄
viewCampaign.php
13.05 KB
08/21/2024 11:46:34 AM
rw-r--r--
📄
viewList.php
9.82 KB
08/21/2024 12:24:20 PM
rw-r--r--
📄
zprocess_emails.php
10.21 KB
08/14/2024 11:34:54 AM
rw-r--r--
📄
zshowListMembers.php
4.59 KB
08/14/2024 10:49:57 AM
rw-r--r--
📄
zsidebar.php
3.27 KB
08/14/2024 10:49:58 AM
rw-r--r--
📄
zviewCampaign.php
8.94 KB
08/14/2024 10:49:58 AM
rw-r--r--
📄
zzedit_list.php
8.42 KB
08/22/2024 05:34:33 AM
rw-r--r--
📄
zzprocess_emails.php
10.07 KB
08/14/2024 10:49:58 AM
rw-r--r--
Editing: showListMembers.php
Close
<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); include '../inc/validate.logged.php'; include 'db.php'; $list_name = ''; if (isset($_GET['id'])) { $list_id = $_GET['id']; } // Function to check and get list name function check_list($conn, $user_id, $list_id) { $list_name = ''; $sql = "SELECT list_name FROM list WHERE id = ? AND user_id = ?"; if ($stmt = $conn->prepare($sql)) { $stmt->bind_param("ii", $list_id, $user_id); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows > 0) { $stmt->bind_result($list_name); if ($stmt->fetch()) { return $list_name; } } $stmt->close(); } return null; } $list_name = check_list($conn, $gUserId, $list_id); if ($list_name === null) { die("Error!!!!.. List not found"); } // Export to CSV functionality if (isset($_GET['export']) && $_GET['export'] === 'csv') { $filename = 'subscribers_list_' . $list_id . '.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment;filename="' . $filename . '"'); $output = fopen('php://output', 'w'); // Set CSV column headers fputcsv($output, ['ID', 'Name', 'Email', 'Status', 'Last Activity']); $sql = "SELECT id, name, email, status, last_activity FROM subscribers WHERE list_id = ?"; if ($stmt = $conn->prepare($sql)) { $stmt->bind_param("i", $list_id); $stmt->execute(); $result = $stmt->get_result(); while ($data = $result->fetch_assoc()) { fputcsv($output, [$data['id'], $data['name'], $data['email'], $data['status'], $data['last_activity']]); } $stmt->close(); } fclose($output); exit; } // Initialize status counters $activity_counts = ['Bounced' => 0, 'Subscribed' => 0, 'Unsubscribed' => 0]; // Fetch subscriber details $sql = "SELECT id, name, email, status, last_activity FROM subscribers WHERE list_id = ?"; if ($stmt = $conn->prepare($sql)) { $stmt->bind_param("i", $list_id); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { $status = $row['status'] ?? 'Unknown'; // Count statuses if ($status === 'bounced') { $activity_counts['Bounced']++; } elseif ($status === 'unsubscribed') { $activity_counts['Unsubscribed']++; } else { $activity_counts['Subscribed']++; } } $stmt->close(); } ?> <!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> <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.4/css/all.min.css"> <link rel="stylesheet" href="../inc/style.css"> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-icons/1.10.5/font/bootstrap-icons.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <style> .breadcrumb-item { padding: 0; width: 100%; } .btn-group { margin-right: 10px; } .btn { margin-right: 10px; } .btn-outline-danger, .btn-outline-success, .btn-outline-warning { border-width: 2px; } .btn-outline-danger { color: #dc3545; border-color: #dc3545; } .btn-outline-success { color: #28a745; border-color: #28a745; } .btn-outline-warning { color: #ffc107; border-color: #ffc107; } .btn-success { background-color: #28a745; border-color: #28a745; } .btn-primary { background-color: #007bff; border-color: #007bff; } .btn-outline-danger:hover { background-color: #dc3545; color: #fff; } .btn-outline-success:hover { background-color: #28a745; color: #fff; } .btn-outline-warning:hover { background-color: #ffc107; color: #212529; } .btn-success:hover { background-color: #218838; border-color: #1e7e34; } .btn-primary:hover { background-color: #0056b3; border-color: #004085; } .graph-container { position: relative; max-width: 100%; height: 300px; } .table-responsive { display: block; overflow-x: auto; white-space: nowrap; } @media (max-width: 768px) { .breadcrumb-item h4 { font-size: 18px; } .btn-group { flex-wrap: wrap; } .btn { width: 100%; margin-bottom: 10px; } .graph-container { height: auto; } } </style> </head> <body class="sb-nav-fixed"> <?php include "navbar.php"; ?> <div id="layoutSidenav"> <?php include 'sidebar.php'; ?> <div id="layoutSidenav_content"> <main> <div id="panelContent" class="container-fluid"> <div class="main-content"> <div class="container"> <!-- Breadcrumb --> <ol class="breadcrumb my-4"> <li class="breadcrumb-item d-flex justify-content-between align-items-center w-100 flex-wrap"> <h4 class="mb-2"><?= htmlspecialchars($list_name ?? 'List Name Not Found') ?></h4> <div class="d-flex flex-wrap"> <div class="btn-group mr-2" role="group"> <a href="bounceViewList.php" class="btn btn-outline-danger"> <i class="fas fa-envelope-open-text"></i> Bounced Emails </a> <a href="deliveryViewList.php" class="btn btn-outline-success"> <i class="fas fa-paper-plane"></i> Delivered Emails </a> <a href="complaintsViewList.php" class="btn btn-outline-warning"> <i class="fas fa-exclamation-circle"></i> Complaints Emails </a> </div> <div class="btn-group mr-2" role="group"> <a href="?id=<?= htmlspecialchars($list_id ?? '') ?>&export=csv" class="btn btn-success"> <i class="bi bi-download"></i> Export to CSV </a> <a href="viewList.php" class="btn btn-primary"> <i class="bi bi-arrow-left"></i> Back </a> </div> </div> </li> </ol> <!-- Graph --> <div class="graph-container"> <canvas id="statusChart"></canvas> </div> <!-- Responsive Table --> <div class="table-responsive mt-4"> <table class="table table-striped"> <thead> <tr> <th>Name</th> <th>Email</th> <th>Last Activity</th> <th>Status</th> </tr> </thead> <tbody> <?php // Re-fetch subscriber details for table display $sql_table = "SELECT id, name, email, last_activity, status FROM subscribers WHERE list_id = ?"; if ($stmt_table = $conn->prepare($sql_table)) { $stmt_table->bind_param("i", $list_id); $stmt_table->execute(); $result_table = $stmt_table->get_result(); if ($result_table->num_rows > 0) { while ($row = $result_table->fetch_assoc()) { echo "<tr>"; echo "<td>" . htmlspecialchars($row['name'] ?? 'N/A') . "</td>"; echo "<td>" . htmlspecialchars($row['email'] ?? 'N/A') . "</td>"; echo "<td>" . htmlspecialchars($row['last_activity'] ?? 'N/A') . "</td>"; echo "<td>" . htmlspecialchars($row['status'] ?? 'Unknown') . "</td>"; echo "</tr>"; } } else { echo "<tr><td colspan='4'>No subscribers found</td></tr>"; } } ?> </tbody> </table> </div> </div> </div> </div> </main> </div> </div> <script> const statuses = <?= json_encode(array_keys($activity_counts)); ?>; const counts = <?= json_encode(array_values($activity_counts)); ?>; var ctx = document.getElementById('statusChart').getContext('2d'); var statusChart = new Chart(ctx, { type: 'bar', data: { labels: statuses, datasets: [{ label: '# of Subscribers', data: counts, backgroundColor: [ '#4c72b0', // Color for bounced '#55a868', // Color for subscribed '#c44e52', // Color for unsubscribed ], borderColor: '#ffffff', borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, ticks: { stepSize: 1 } }, x: { ticks: { maxRotation: 45, minRotation: 0 } } }, plugins: { legend: { display: false }, title: { display: true, text: 'Subscriber Status Count', font: { size: 16 } } } } }); </script> </body> </html>