← Back to all documents

cai-exos-systems/daveadmin-exos-new:newsletter-subscribe.php

gitea 279 words Source ↗
newsletter-subscribe.php ```text <?php /** * Exos Systems - Newsletter Subscribe Handler */ define('EXOS_INIT', true); require_once __DIR__ . '/config/config.php'; if ($_SERVER['REQUEST_METHOD'] !== 'POST') { header('Location: insights.php'); exit; } $email = trim($_POST['email'] ?? ''); $fullName = trim($_POST['full_name'] ?? ''); $company = trim($_POST['company'] ?? ''); $sourcePage = trim($_POST['source_page'] ?? 'insights'); $redirectUrl = trim($_POST['redirect_url'] ?? 'insights.php'); $redirectTarget = preg_match('/^[a-z0-9._?=&-]+\.php(?:\?[a-z0-9._%=&-]+)?$/i', $redirectUrl) ? $redirectUrl : 'insights.php'; // If coming from a page that uses thanks.php, override redirects to thanks.php states $useThanksRedirect = ($redirectTarget === 'thanks.php'); if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) { header('Location: ' . ($useThanksRedirect ? 'thanks.php?type=error' : $redirectTarget . (strpos($redirectTarget, '?') !== false ? '&' : '?') . 'newsletter=invalid')); exit; } $existing = fetchRow("SELECT * FROM exos_newsletter_subscribers WHERE email = ? LIMIT 1", [$email]); if ($existing) { update('exos_newsletter_subscribers', [ 'full_name' => $fullName ?: ($existing['full_name'] ?? ''), 'company' => $company ?: ($existing['company'] ?? ''), 'source_page' => $sourcePage ?: ($existing['source_page'] ?? ''), ], 'id = ?', [$existing['id']]); header('Location: ' . ($useThanksRedirect ? 'thanks.php?type=already' : $redirectTarget . (strpos($redirectTarget, '?') !== false ? '&' : '?') . 'newsletter=exists')); exit; } insert('exos_newsletter_subscribers', [ 'email' => $email, 'full_name' => $fullName, 'company' => $company, 'source_page' => $sourcePage, 'status' => 'pending', ]); // Push new subscriber to SuiteCRM as Lead (best-effort) $nameParts = explode(' ', $fullName, 2); pushLeadToCrm([ 'first_name' => $nameParts[0] ?: 'Subscriber', 'last_name' => $nameParts[1] ?? ($nameParts[0] ?: 'Subscriber'), 'email1' => $email, 'account_name' => $company, 'lead_source' => 'Web Site', 'lead_source_description' => 'Exos Systems newsletter signup — Exos Field Notes', 'description' => "Subscribed to Exos Field Notes via exos-systems.com (source: $sourcePage)", 'status' => 'New', ]); header('Location: ' . ($useThanksRedirect ? 'thanks.php?type=newsletter' : $redirectTarget . (strpos($redirectTarget, '?') !== false ? '&' : '?') . 'newsletter=subscribed')); exit; ```