cai-exos-systems/daveadmin-exos-new:newsletter-subscribe.php
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;
```