Customer Portal

Access your licenses, download software, and manage your account

Active Licenses

2

Currently active and operational

Monthly Usage

1,247

Emails processed this month

Threats Blocked

89

Phishing attempts stopped

Next Renewal

45 days

PhishingLine Professional

Your Licenses

`; tbody.appendChild(row); }); } function showTab(tabName) { // Remove active class from all tabs and content document.querySelectorAll('.tab').forEach(tab => tab.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active')); // Add active class to selected tab and content event.target.classList.add('active'); document.getElementById(tabName).classList.add('active'); } async function handleSupportSubmission(e) { e.preventDefault(); const formData = new FormData(e.target); const token = localStorage.getItem('hlt_auth_token'); formData.append('auth_token', token); const submitBtn = e.target.querySelector('button[type="submit"]'); const originalText = submitBtn.innerHTML; submitBtn.innerHTML = ' Submitting...'; submitBtn.disabled = true; try { const response = await fetch('portal-support.php', { method: 'POST', body: formData }); const result = await response.json(); if (result.success) { showMessage('Support ticket submitted successfully. Ticket #' + result.ticket_number, 'success'); e.target.reset(); } else { showMessage(result.message || 'Failed to submit support ticket.', 'error'); } } catch (error) { console.error('Support submission error:', error); showMessage('Network error. Please try again.', 'error'); } finally { submitBtn.innerHTML = originalText; submitBtn.disabled = false; } } function copyToClipboard(text) { navigator.clipboard.writeText(text).then(function() { showMessage('License key copied to clipboard!', 'success'); }).catch(function(err) { console.error('Copy failed:', err); // Fallback for older browsers const textArea = document.createElement('textarea'); textArea.value = text; document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); showMessage('License key copied to clipboard!', 'success'); }); } function downloadSoftware(licenseId) { const token = localStorage.getItem('hlt_auth_token'); window.open(`download-software.php?license=${licenseId}&token=${token}`, '_blank'); } function logout() { localStorage.removeItem('hlt_auth_token'); document.getElementById('loginSection').style.display = 'block'; document.getElementById('dashboardSection').style.display = 'none'; // Reset forms document.getElementById('loginForm').reset(); showMessage('You have been logged out successfully.', 'success'); } function showForgotPassword() { const email = prompt('Please enter your email address:'); if (email && email.includes('@')) { fetch('portal-auth.php', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ action: 'forgot_password', email: email }) }) .then(response => response.json()) .then(result => { if (result.success) { showMessage('Password reset instructions have been sent to your email.', 'success'); } else { showMessage(result.message || 'Failed to send reset instructions.', 'error'); } }) .catch(error => { console.error('Password reset error:', error); showMessage('Network error. Please try again.', 'error'); }); } } function showMessage(message, type = 'info') { // Remove existing messages const existingMessages = document.querySelectorAll('.message'); existingMessages.forEach(msg => msg.remove()); // Create new message const messageDiv = document.createElement('div'); messageDiv.className = `message ${type}`; messageDiv.textContent = message; // Insert message at top of visible container const activeContainer = document.getElementById('loginSection').style.display !== 'none' ? document.getElementById('loginSection') : document.getElementById('dashboardSection'); activeContainer.insertBefore(messageDiv, activeContainer.firstChild); // Auto-remove messages after 5 seconds setTimeout(() => { if (messageDiv.parentNode) { messageDiv.remove(); } }, 5000); } onclick="copyToClipboard('ABCD-EFGH-IJKL-MNOP')">Copy
Product License Key Status Expires Users Actions
PhishingLine Professional ABCD-EFGH-IJKL-MNOP ${license.status_display} ${license.expiry_date || '-'} ${license.current_users || 0} / ${license.user_limit || 'Unlimited'} Active 2025-06-15 250 / 500
PhishingLine Starter QRST-UVWX-YZAB-CDEF Pending Payment - 0 / 100

Software Downloads

PhishingLine

Latest version: 2.1.5

Released: June 1, 2024



Installation Guide

Configuration Tools

Latest version: 1.0.3

Released: May 15, 2024



User Manual

Contact Support

Billing & Payments

Current Balance

$299.00

Amount due for PhishingLine Starter

Next Payment

Jul 15

PhishingLine Professional renewal

Auto-pay enabled