Linux spg1.cloudpowerdns.com 5.14.0-611.34.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 18 05:51:10 EST 2026 x86_64
LiteSpeed
Server IP : 176.9.63.151 & Your IP : 216.73.217.60
Domains :
Cant Read [ /etc/named.conf ]
User : fastear1
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
fastear1 /
.trash /
public /
Delete
Unzip
Name
Size
Permission
Date
Action
data
[ DIR ]
drwxr-xr-x
2025-09-15 23:22
uploads
[ DIR ]
drwxr-xr-x
2025-09-15 18:00
COMPLETE_SETUP_GUIDE.md
5.02
KB
-rw-r--r--
2025-09-15 23:45
DATABASE_SETUP.md
2.84
KB
-rw-r--r--
2025-09-15 23:41
FIX_ACCESS_DENIED.md
2.36
KB
-rw-r--r--
2025-09-16 00:07
MIGRATION_SUMMARY.md
4.28
KB
-rw-r--r--
2025-09-15 23:45
NEXT_STEPS.md
2.18
KB
-rw-r--r--
2025-09-15 23:45
PHPMYADMIN_SETUP_GUIDE.md
3.61
KB
-rw-r--r--
2025-09-15 23:43
QUICK_FIX_INSTRUCTIONS.md
1.99
KB
-rw-r--r--
2025-09-16 00:09
admin-dashboard.html
25.26
KB
-rw-r--r--
2025-09-15 17:29
admin-login.html
5.25
KB
-rw-r--r--
2025-09-15 02:24
admin-profile.html
24.21
KB
-rw-r--r--
2025-09-15 17:43
analytics.html
25.08
KB
-rw-r--r--
2025-09-15 16:13
check_mysql.php
1.33
KB
-rw-r--r--
2025-09-15 23:44
cleanup_duplicates.php
1.46
KB
-rw-r--r--
2025-09-15 23:08
complete_workflow_test.php
4.46
KB
-rw-r--r--
2025-09-15 23:22
create_test_user.php
1.15
KB
-rw-r--r--
2025-09-15 23:20
database.php
4.29
KB
-rw-r--r--
2025-09-15 23:43
database_mysql.php
9.98
KB
-rw-r--r--
2025-09-16 00:08
db_config.php
587
B
-rw-r--r--
2025-09-16 00:07
demo-enhanced.html
45.46
KB
-rw-r--r--
2025-09-15 01:43
deposit.html
10.83
KB
-rw-r--r--
2025-09-15 17:08
error_log
825
B
-rw-r--r--
2025-10-04 15:48
fastearnads.sql
6.12
KB
-rw-r--r--
2025-09-15 23:39
fastearnads_tables_only.sql
5.96
KB
-rw-r--r--
2025-09-16 00:07
final_test.php
4.73
KB
-rw-r--r--
2025-09-15 23:29
import_database.bat
1.03
KB
-rw-r--r--
2025-09-15 23:45
index.php
50.11
KB
-rw-r--r--
2025-09-15 23:40
manage-ads.html
25.39
KB
-rw-r--r--
2025-09-15 16:12
manage-users.html
42.4
KB
-rw-r--r--
2025-09-15 16:54
manage-withdraws.html
49.19
KB
-rw-r--r--
2025-09-15 15:54
migrate_data.php
1.6
KB
-rw-r--r--
2025-09-15 23:40
simple-login.html
1.19
KB
-rw-r--r--
2025-09-15 02:08
start_mysql.bat
948
B
-rw-r--r--
2025-09-15 23:45
test_admin_approval.php
3.55
KB
-rw-r--r--
2025-09-15 23:21
test_connection_with_user.php
1.9
KB
-rw-r--r--
2025-09-15 19:19
test_db_connection.php
1.54
KB
-rw-r--r--
2025-09-15 23:41
test_deposit_fix.php
2.88
KB
-rw-r--r--
2025-09-15 23:09
test_frontend.html
3.49
KB
-rw-r--r--
2025-09-15 23:22
test_user_activity_history.php
2.96
KB
-rw-r--r--
2025-09-15 23:21
user-ads.html
18.36
KB
-rw-r--r--
2025-09-15 14:39
user-dashboard.html
47.77
KB
-rw-r--r--
2025-09-15 23:26
user-login.html
5.78
KB
-rw-r--r--
2025-09-15 02:27
user-profile.html
33.93
KB
-rw-r--r--
2025-09-15 18:33
user-register.html
7.56
KB
-rw-r--r--
2025-09-15 02:27
user-transactions.html
31.83
KB
-rw-r--r--
2025-09-15 22:58
user-withdraw.html
29.48
KB
-rw-r--r--
2025-09-15 21:52
user-withdrawals.html
29.17
KB
-rw-r--r--
2025-09-15 21:51
waiting-approval.html
5.46
KB
-rw-r--r--
2025-09-15 03:23
Save
Rename
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Manage Ads - FastEarnAds Admin</title> <script src="https://cdn.tailwindcss.com"></script> <script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script> <style> [x-cloak] { display: none !important; } .modal-enter { animation: modalEnter 0.3s ease-out; } @keyframes modalEnter { from { opacity: 0; transform: scale(0.9) translateY(-10px); } to { opacity: 1; transform: scale(1) translateY(0); } } .success-pulse { animation: successPulse 0.6s ease-in-out; } @keyframes successPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } </style> </head> <body class="bg-gray-50" x-data="adsData()" x-init="loadAds()"> <!-- Header --> <header class="bg-white shadow-sm border-b border-gray-200"> <div class="max-w-7xl mx-auto px-4 py-4"> <div class="flex items-center justify-between"> <div class="flex items-center space-x-4"> <div class="w-10 h-10 bg-gradient-to-r from-green-600 to-blue-600 rounded-lg flex items-center justify-center"> <svg class="w-6 h-6 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"/> </svg> </div> <div> <h1 class="text-xl font-bold text-gray-900">Manage Ads</h1> <p class="text-sm text-gray-600">FastEarnAds Admin Panel</p> </div> </div> <button onclick="window.location.href='/admin/dashboard'" class="bg-gray-600 text-white px-4 py-2 rounded-lg hover:bg-gray-700"> Back to Dashboard </button> </div> </div> </header> <!-- Main Content --> <div class="max-w-7xl mx-auto px-4 py-8"> <!-- Add New Ad Section --> <div class="bg-white rounded-xl shadow-sm border mb-8"> <div class="px-6 py-4 border-b border-gray-200"> <h3 class="text-lg font-semibold text-gray-900">Create New Ad</h3> </div> <div class="p-6"> <form @submit.prevent="createAd()" class="space-y-6"> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Ad Title</label> <input type="text" x-model="newAd.title" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500" placeholder="Enter ad title"> </div> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Category</label> <select x-model="newAd.category" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500"> <option value="">Select category</option> <option value="Technology">Technology</option> <option value="Fashion">Fashion</option> <option value="Food">Food</option> <option value="Travel">Travel</option> <option value="Business">Business</option> </select> </div> </div> <div class="grid grid-cols-1 md:grid-cols-3 gap-6"> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Duration (seconds)</label> <input type="number" x-model="newAd.duration" min="10" max="300" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500" placeholder="30"> </div> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Reward ($)</label> <input type="number" x-model="newAd.reward" min="0.01" max="1.00" step="0.01" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500" placeholder="0.05"> </div> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Status</label> <select x-model="newAd.status" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500"> <option value="active">Active</option> <option value="inactive">Inactive</option> </select> </div> </div> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Ad URL/Link</label> <input type="url" x-model="newAd.url" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500" placeholder="https://example.com"> </div> <div> <label class="block text-sm font-medium text-gray-700 mb-2">Description</label> <textarea x-model="newAd.description" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500" placeholder="Enter ad description"></textarea> </div> <button type="submit" :disabled="creating" class="w-full bg-green-600 text-white py-3 px-4 rounded-lg hover:bg-green-700 disabled:opacity-50"> <span x-show="!creating">Create Ad</span> <span x-show="creating">Creating...</span> </button> </form> </div> </div> <!-- Existing Ads List --> <div class="bg-white rounded-xl shadow-sm border"> <div class="px-6 py-4 border-b border-gray-200"> <h3 class="text-lg font-semibold text-gray-900">Existing Ads</h3> <p class="text-sm text-gray-600 mt-1">Total Ads: <span x-text="allAds.length"></span></p> </div> <div class="p-6"> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> <template x-for="ad in allAds" :key="ad.id"> <div class="border border-gray-200 rounded-lg p-4"> <div class="flex items-center justify-between mb-3"> <h4 class="font-semibold text-gray-900" x-text="ad.title"></h4> <span x-text="ad.status" :class="ad.status === 'active' ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800'" class="px-2 py-1 text-xs rounded-full"></span> </div> <div class="text-sm text-gray-600 space-y-1"> <p><strong>Category:</strong> <span x-text="ad.category"></span></p> <p><strong>Duration:</strong> <span x-text="ad.duration"></span>s</p> <p><strong>Reward:</strong> $<span x-text="ad.reward"></span></p> <p><strong>Created:</strong> <span x-text="formatDate(ad.created_at)"></span></p> </div> <div class="mt-4 flex space-x-2"> <button @click="editAd(ad)" class="flex-1 bg-blue-600 text-white py-1 px-3 rounded text-sm hover:bg-blue-700"> Edit </button> <button @click="deleteAd(ad.id)" class="flex-1 bg-red-600 text-white py-1 px-3 rounded text-sm hover:bg-red-700"> Delete </button> </div> </div> </template> </div> <div x-show="allAds.length === 0" class="text-center py-12"> <svg class="w-16 h-16 mx-auto mb-4 text-gray-300" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"/> </svg> <h3 class="text-lg font-medium text-gray-900 mb-2">No Ads Found</h3> <p class="text-gray-600">Create your first ad to get started.</p> </div> </div> </div> </div> <!-- Success Modal --> <div x-show="showSuccessModal" x-cloak class="fixed inset-0 z-50 flex items-center justify-center px-4 py-6"> <div class="fixed inset-0 bg-black bg-opacity-50 backdrop-blur-sm transition-opacity" x-show="showSuccessModal" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" @click="closeSuccessModal()"></div> <div class="relative bg-white rounded-2xl shadow-2xl max-w-md w-full mx-auto modal-enter" x-show="showSuccessModal" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0 scale-95 translate-y-4" x-transition:enter-end="opacity-100 scale-100 translate-y-0" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100 scale-100 translate-y-0" x-transition:leave-end="opacity-0 scale-95 translate-y-4"> <div class="text-center pt-8 pb-6 px-6"> <div class="w-20 h-20 bg-gradient-to-r from-green-400 to-emerald-500 rounded-full flex items-center justify-center mx-auto mb-6 success-pulse"> <svg class="w-10 h-10 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/> </svg> </div> <h3 class="text-2xl font-bold text-gray-900 mb-2" x-text="successData.title">Success!</h3> <p class="text-gray-600 mb-6" x-text="successData.message">Operation completed successfully.</p> <div x-show="successData.adTitle" class="bg-gradient-to-r from-green-50 to-emerald-50 rounded-xl p-4 mb-6"> <div class="space-y-2"> <div class="flex justify-between items-center"> <span class="text-sm font-medium text-gray-700">Ad Title:</span> <span class="text-sm font-semibold text-gray-900" x-text="successData.adTitle">-</span> </div> <div class="flex justify-between items-center"> <span class="text-sm font-medium text-gray-700">Category:</span> <span class="text-sm text-gray-700" x-text="successData.category">-</span> </div> <div class="flex justify-between items-center"> <span class="text-sm font-medium text-gray-700">Reward:</span> <span class="text-sm font-bold text-green-600" x-text="'$' + (successData.reward || 0).toFixed(2)">$0.00</span> </div> </div> </div> </div> <div class="border-t border-gray-200 px-6 py-4"> <button @click="closeSuccessModal()" class="w-full bg-gradient-to-r from-green-600 to-emerald-600 text-white py-3 px-4 rounded-xl font-medium hover:from-green-700 hover:to-emerald-700 transition-all duration-200"> <svg class="w-4 h-4 inline mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/> </svg> Continue </button> </div> </div> </div> <!-- Error Modal --> <div x-show="showErrorModal" x-cloak class="fixed inset-0 z-50 flex items-center justify-center px-4 py-6"> <div class="fixed inset-0 bg-black bg-opacity-50 backdrop-blur-sm transition-opacity" x-show="showErrorModal" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" @click="closeErrorModal()"></div> <div class="relative bg-white rounded-2xl shadow-2xl max-w-md w-full mx-auto modal-enter" x-show="showErrorModal" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0 scale-95 translate-y-4" x-transition:enter-end="opacity-100 scale-100 translate-y-0" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100 scale-100 translate-y-0" x-transition:leave-end="opacity-0 scale-95 translate-y-4"> <div class="text-center pt-8 pb-6 px-6"> <div class="w-20 h-20 bg-gradient-to-r from-red-400 to-pink-500 rounded-full flex items-center justify-center mx-auto mb-6"> <svg class="w-10 h-10 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/> </svg> </div> <h3 class="text-2xl font-bold text-gray-900 mb-2">Error Occurred</h3> <p class="text-gray-600 mb-6" x-text="errorMessage">Something went wrong. Please try again.</p> </div> <div class="border-t border-gray-200 px-6 py-4"> <button @click="closeErrorModal()" class="w-full bg-gradient-to-r from-red-600 to-pink-600 text-white py-3 px-4 rounded-xl font-medium hover:from-red-700 hover:to-pink-700 transition-all duration-200"> <svg class="w-4 h-4 inline mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/> </svg> Close </button> </div> </div> </div> <script> function adsData() { return { allAds: [], creating: false, showSuccessModal: false, showErrorModal: false, successData: { title: '', message: '', adTitle: '', category: '', reward: 0 }, errorMessage: '', newAd: { title: '', category: '', duration: 30, reward: 0.05, status: 'active', url: '', description: '' }, async loadAds() { try { const response = await fetch('/admin/ads'); if (response.ok) { const data = await response.json(); this.allAds = Array.isArray(data) ? data : []; } else { console.error('Failed to load ads'); // Load sample data for demonstration this.loadSampleAds(); } } catch (error) { console.error('Error loading ads:', error); // Load sample data for demonstration this.loadSampleAds(); } }, loadSampleAds() { this.allAds = [ { id: 1, title: "Sample Ad 1", category: "Technology", duration: 30, reward: 0.05, status: "active", url: "https://example.com", description: "This is a sample ad", created_at: new Date().toISOString() }, { id: 2, title: "Sample Ad 2", category: "Fashion", duration: 45, reward: 0.08, status: "active", url: "https://example2.com", description: "Another sample ad", created_at: new Date().toISOString() } ]; }, async createAd() { if (!this.validateForm()) { return; } this.creating = true; try { const response = await fetch('/admin/create-ad', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ ...this.newAd, created_at: new Date().toISOString() }) }); const result = await response.json(); if (response.ok) { this.showSuccess( 'Ad Created Successfully!', 'Your new ad has been created and is now active.', this.newAd.title, this.newAd.category, this.newAd.reward ); this.resetForm(); this.loadAds(); } else { this.showError('Error creating ad: ' + (result.error || 'Unknown error')); } } catch (error) { console.error('Error creating ad:', error); this.showError('Network error. Please try again.'); } this.creating = false; }, validateForm() { if (!this.newAd.title.trim()) { this.showError('Please enter ad title'); return false; } if (!this.newAd.category) { this.showError('Please select a category'); return false; } if (!this.newAd.url || !this.isValidUrl(this.newAd.url)) { this.showError('Please enter a valid URL'); return false; } if (this.newAd.duration < 10 || this.newAd.duration > 300) { this.showError('Duration must be between 10 and 300 seconds'); return false; } if (this.newAd.reward < 0.01 || this.newAd.reward > 1.00) { this.showError('Reward must be between $0.01 and $1.00'); return false; } return true; }, isValidUrl(string) { try { new URL(string); return true; } catch (_) { return false; } }, resetForm() { this.newAd = { title: '', category: '', duration: 30, reward: 0.05, status: 'active', url: '', description: '' }; }, formatDate(dateString) { if (!dateString) return 'N/A'; return new Date(dateString).toLocaleDateString(); }, editAd(ad) { this.showError('Edit functionality will be implemented soon for: ' + ad.title); }, async deleteAd(adId) { if (confirm('Are you sure you want to delete this ad?')) { try { const response = await fetch('/admin/delete-ad', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ id: adId }) }); const result = await response.json(); if (response.ok) { this.showSuccess( 'Ad Deleted Successfully!', 'The selected ad has been permanently removed.', '', '', 0 ); this.loadAds(); } else { this.showError('Error deleting ad: ' + (result.error || 'Unknown error')); } } catch (error) { console.error('Error deleting ad:', error); this.showError('Network error. Please try again.'); } } }, // Modal control functions showSuccess(title, message, adTitle = '', category = '', reward = 0) { this.successData = { title: title, message: message, adTitle: adTitle, category: category, reward: reward }; this.showSuccessModal = true; }, closeSuccessModal() { this.showSuccessModal = false; this.successData = { title: '', message: '', adTitle: '', category: '', reward: 0 }; }, showError(message) { this.errorMessage = message; this.showErrorModal = true; }, closeErrorModal() { this.showErrorModal = false; this.errorMessage = ''; } } } </script> </body> </html>