You seem ready, @cpradio . Here goes,
My index page form uses this php,
<?php
/*
If you see this text in your browser, PHP is not configured correctly on this webhost.
Contact your hosting provider regarding PHP configuration for your site.
*/
require_once('form_throttle.php');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (formthrottle_too_many_submissions($_SERVER["REMOTE_ADDR"]))
{
echo '{"MusePHPFormResponse": { "success": false,"error": "Too many recent submissions from this IP"}}';
}
else
{
emailFormSubmission();
}
}
function emailFormSubmission()
{
if(!defined('PHP_EOL'))
define('PHP_EOL', '\r\n');
$to = 'subscriber@subscribershop.com';
$subject = 'Subscribers Form Submission';
$message = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>' . htmlentities($subject,ENT_COMPAT,'UTF-8') . '</title></head>';
$message .= '<body style="background-color: #ffffff; color: #000000; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 18px; font-family: helvetica, arial, verdana, sans-serif;">';
$message .= '<h2 style="background-color: #eeeeee;">New Form Submission</h2><table cellspacing="0" cellpadding="0" width="100%" style="background-color: #ffffff;">';
$message .= '<tr><td valign="top" style="background-color: #ffffff;"><b>Email:</b></td><td>' . htmlentities($_REQUEST["Email"],ENT_COMPAT,'UTF-8') . '</td></tr>';
$message .= '</table><br/><br/>';
$message .= '<div style="background-color: #eeeeee; font-size: 10px; line-height: 11px;">Form submitted from website: ' . htmlentities($_SERVER["SERVER_NAME"],ENT_COMPAT,'UTF-8') . '</div>';
$message .= '<div style="background-color: #eeeeee; font-size: 10px; line-height: 11px;">Visitor IP address: ' . htmlentities($_SERVER["REMOTE_ADDR"],ENT_COMPAT,'UTF-8') . '</div>';
$message .= '</body></html>';
$message = cleanupMessage($message);
$formEmail = cleanupEmail($_REQUEST['Email']);
require 'PHPMailer-5.2.8/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'mx1.hostinger.in'; // update this line
$mail->SMTPAuth = true;
$mail->Username = 'anything@subscribershop.com'; // update this line
$mail->Password = 'anything'; // update this line
//$mail->SMTPSecure = 'tls';
$mail->From = 'anything@subscribershop.com';
$mail->FromName = 'Subscriber Shop';
$mail->addAddress($to);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $message;
$sent = $mail->send();
if($sent)
{
echo '{"FormResponse": { "success": true,"redirect":"thank-you.html"}}';
}
else
{
echo '{"MusePHPFormResponse": { "success": false,"error": "Failed to send email"}}';
}
}
function cleanupEmail($email)
{
$email = htmlentities($email,ENT_COMPAT,'UTF-8');
$email = preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $email);
return $email;
}
function cleanupMessage($message)
{
$message = wordwrap($message, 70, "\r\n");
return $message;
}
?>
This uses form_throttle.php,
<?php
/*
If you see this text in your browser, PHP is not configured correctly on this hosting provider.
Contact your hosting provider regarding PHP configuration for your site.
PHP file generated by Adobe Muse 2014.0.30
*/
function formthrottle_check()
{
if (!function_exists("sqlite_open"))
{
return '1';
}
$retCode ='5';
if ($db = @sqlite_open('muse-throttle-db', 0666, $sqliteerror))
{
$res = @sqlite_query($db, "SELECT 1 FROM sqlite_master WHERE type='table' AND name='Submission_History';", $sqliteerror);
if ($res == null or @sqlite_num_rows($res) == 0 or @sqlite_fetch_single($res) != 1)
{
$created = @sqlite_exec($db, "CREATE TABLE Submission_History (IP VARCHAR(39), Submission_Date TIMESTAMP)", $sqliteerror);
if($created)
{
@sqlite_exec($db, "INSERT INTO Submission_History (IP,Submission_Date) VALUES ('256.256.256.256', DATETIME('now'))", $sqliteerror);
}
else
{
$retCode = '2';
}
}
if($retCode == '5')
{
$res = @sqlite_query($db, "SELECT COUNT(1) FROM Submission_History;", $sqliteerror);
if ($res != null and @sqlite_num_rows($res) > 0 and @sqlite_fetch_single($res) > 0)
$retCode = '0';
else
$retCode = '3';
}
@sqlite_close($db);
}
else
$retCode = '4';
return $retCode;
}
function formthrottle_too_many_submissions($ip)
{
$tooManySubmissions = false;
if (function_exists("sqlite_open") and $db = @sqlite_open('muse-throttle-db', 0666, $sqliteerror))
{
$ip = @sqlite_escape_string($ip);
@sqlite_exec($db, "DELETE FROM Submission_History WHERE Submission_Date < DATETIME('now','-2 hours')", $sqliteerror);
@sqlite_exec($db, "INSERT INTO Submission_History (IP,Submission_Date) VALUES ('$ip', DATETIME('now'))", $sqliteerror);
$res = @sqlite_query($db, "SELECT COUNT(1) FROM Submission_History WHERE IP = '$ip';", $sqliteerror);
if (@sqlite_num_rows($res) > 0 and @sqlite_fetch_single($res) > 25)
$tooManySubmissions = true;
@sqlite_close($db);
}
return $tooManySubmissions;
}
?>
My scripts folder consists all the php files along with the PHPMailer folder.
Regards
Anmol Parashar