⚝
One Hat Cyber Team
⚝
Your IP:
216.73.217.70
Server IP:
209.74.65.82
Server:
Linux 209-74-65-82.cprapid.com 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
PHP Version:
8.1.34
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
ivsoxidh
/
allmedia.mk
/
Edit File: contact-handler.php
<?php // contact-handler.php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require __DIR__ . '/phpmailer/src/Exception.php'; require __DIR__ . '/phpmailer/src/PHPMailer.php'; require __DIR__ . '/phpmailer/src/SMTP.php'; $CFG = require __DIR__ . '/config-mail.php'; $contact_sent = $contact_sent ?? false; $contact_error = $contact_error ?? null; function build_mail_body(string $name, string $email, string $company, string $message): array { $body = "<p>Име и презиме: <strong>" . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . "</strong></p>"; if ($company) { $body .= "<p>Компанија: <strong>" . htmlspecialchars($company, ENT_QUOTES, 'UTF-8') . "</strong></p>"; } $body .= "<p>E-mail: <strong>" . htmlspecialchars($email, ENT_QUOTES, 'UTF-8') . "</strong></p>"; $body .= "<p>Порака:</p><p>" . nl2br(htmlspecialchars($message, ENT_QUOTES, 'UTF-8')) . "</p>"; $alt = "Име и презиме: $name\n"; if ($company) $alt .= "Компанија: $company\n"; $alt .= "E-mail: $email\n\n"; $alt .= "Порака:\n$message\n"; return [$body, $alt]; } function send_with_profile(array $CFG, array $profile, string $replyEmail, string $replyName, string $subject, string $htmlBody, string $altBody): void { $mail = new PHPMailer(true); // SMTP basic $mail->isSMTP(); $mail->Host = $CFG['host']; $mail->SMTPAuth = true; $mail->Username = $CFG['username']; $mail->Password = $CFG['password']; // Prevent long “vrti” page $mail->Timeout = 15; $mail->SMTPKeepAlive = false; // Debug only to server logs (НЕ на екран) $mail->SMTPDebug = 0; $mail->Debugoutput = function($str, $level) { error_log("SMTP[$level]: $str"); }; // Profile (465 SMTPS or 587 STARTTLS) $mail->Port = $profile['port']; $mail->SMTPSecure = $profile['secure']; // If SSL certs are problematic on some hostings (optional) if (!empty($profile['allow_self_signed'])) { $mail->SMTPOptions = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]; } // Headers $mail->CharSet = 'UTF-8'; $mail->isHTML(true); $mail->setFrom($CFG['from_email'], $CFG['from_name']); foreach ($CFG['to'] as $t) { $mail->addAddress($t['email'], $t['name'] ?? ''); } $mail->addReplyTo($replyEmail, $replyName); $mail->Subject = $subject; $mail->Body = $htmlBody; $mail->AltBody = $altBody; $mail->send(); } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['contact_form'])) { $name = trim($_POST['name'] ?? ''); $email = trim($_POST['email'] ?? ''); $company = trim($_POST['company'] ?? ''); $message = trim($_POST['message'] ?? ''); // Basic validation if ($name === '' || $email === '' || $message === '') { $contact_error = 'Ве молиме пополнете ги задолжителните полиња.'; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $contact_error = 'Ве молиме внесете валидна e-mail адреса.'; } else { [$body, $alt] = build_mail_body($name, $email, $company, $message); $subject = 'Нова контакт порака од веб страната – All Media'; // Try 465 first, then 587 fallback $profiles = [ [ 'port' => 465, 'secure' => PHPMailer::ENCRYPTION_SMTPS, 'allow_self_signed' => false, // ако прави проблем, смени на true ], [ 'port' => 587, 'secure' => PHPMailer::ENCRYPTION_STARTTLS, 'allow_self_signed' => false, ], ]; $sent = false; $lastError = null; foreach ($profiles as $p) { try { send_with_profile($CFG, $p, $email, $name, $subject, $body, $alt); $sent = true; break; } catch (Exception $e) { // Log exact error for you $lastError = $e->getMessage(); error_log('PHPMailer profile failed: port=' . $p['port'] . ' secure=' . $p['secure'] . ' err=' . $lastError); } } if ($sent) { $contact_sent = true; $_POST = []; } else { $contact_error = 'Пораката не беше испратена. Ве молиме обидете се повторно или контактирајте нè директно на e-mail.'; // Ако сакаш да видиш точно што е, привремено (само за тебе) отвори error_log на сервер. } } }
Simpan