confirmform.php
PHP Code:
<?php
$instance = new CheckForm;
$instance -> checkSubmission();
class CheckForm
{
public function checkSubmission()
{
$origEmail = $_POST['origEmail'];
$confirmEmail = strip_tags($_POST['confirmEmail']);
$name = trim(preg_replace('/ +/', ' ', preg_replace('/[^A-Za-z0-9 ]/', ' ', urldecode(html_entity_decode(strip_tags($_POST['name']))))));
$ageRange = $_POST['age'];
$gender = $_POST['gender'];
$country = $_POST['country'];
$catcher = strip_tags($_POST['catcher']);
$mathAnswer = strip_tags($_POST['addition']);
$rightAnswer = $_POST['mathAnswer'];
$submissionTime = $_POST['submissionTime'];
$status = 0;
$response = array("validation" => " ", "message" => " ", "database" => " ");
if (empty($confirmEmail) && empty($name) && $country == "Select Country") {
$response['message'] = "That's not a valid submission.";
} elseif (empty($confirmEmail) && $country == "Select Country"){
$response['message'] = "Please confirm your e-mail and select a location.";
} elseif (empty($name) && $country == "Select Country"){
$response['message'] = "Please enter a name and select a location.";
} elseif (empty($name)) {
$response['message'] = "Please enter a name.";
} elseif (empty($confirmEmail)) {
$response['message'] = "No confirmation e-mail was entered.";
} elseif ($origEmail != $confirmEmail) {
$response['message'] = "E-mail addresses don't match.";
} elseif ($country == "Select Country") {
$response['message'] = "Please select a location.";
} elseif ($mathAnswer != $rightAnswer) {
$response['message'] = "Math answer is incorrect.";
} elseif (!empty($catcher)) {
$response['message'] = "Bot submission.";
} elseif ($submissionTime <= 8000) {
$response['message'] = "Woah! Slow down and fill out the form.";
} else
$status = 1;
if ($gender == "Male")
$gender = "M";
elseif ($gender == "Female")
$gender = "F";
else
$gender = NULL;
if ($status == 1) {
echo "All Good";
require_once("categoryfinder.php");
$categoryFinder = new CategoryFinder;
$category = $categoryFinder -> getCategory();
$response['validation'] = "pass";
$response['message'] = "Thanks for joining the e-mail list, <b>" . $name . "</b>, under the e-mail address, <b>" . $confirmEmail . "</b>.";
require_once('databasewriter.php');
$dbWriter = new DatabaseWriter;
$dbCode = $dbWriter -> writeUserToDatabase($confirmEmail, $name, $ageRange, $gender, $country, $category);
if ($dbCode == 1) {
$response['database'] = "pass";
echo 'Database Write Successful';
} else {
$response['database'] = "fail";
$response['validation'] = "fail";
echo 'Database Write Failure';
}
if ($dbCode == 2) {
$response['message'] = "Server error. Please try again later.";
} elseif ($dbCode == 3) {
$response['message'] = "That e-mail address already exists.";
}
echo json_encode($response);
}
}
}
?>
categoryfinder.php
PHP Code:
<?php
class CategoryFinder
{
public function getCategory() {
$currentURL = $_SERVER['HTTP_REFERER'];
// Build the match to array
$matchTo = array(
'worldreviewgroup' => 'Home Page',
'health' => 'Health',
'insurance' => 'Insurance',
'general' => 'General',
'dating' => 'Dating',
'education' => 'Education',
'legal' => 'Legal',
'startyour' => 'Business Opportunities',
'business' => 'Business Services'
);
foreach($matchTo AS $key => $value) {
if(strpos($currentURL, $key) !== FALSE) {
return $value;
break;
}
}
return ' ';
}
}
?>
databasewriter.php
PHP Code:
<?php
class DatabaseWriter
{
public function writeUserToDatabase($email , $name , $age , $gender , $country , $category)
{
$host = '*************';
$dbname = 'emailcollection';
$user = '**********';
$pass = '*********';
$connection = new PDO("mysql:host=" . $host . ";dbname=" . $dbname, $user, $pass);
try {
$connection -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$statement = $connection -> prepare("INSERT INTO emailcollection (emailaddress, name, age, gender, country, category) VALUES (:emailaddress, :name, :age, :gender, :country, :category)");
$statement -> bindValue(':emailaddress', $email);
$statement -> bindValue(':name', $name);
$statement -> bindValue(':age', $age);
$statement -> bindValue(':gender', $gender);
$statement -> bindValue(':country', $country);
$statement -> bindValue(':category', $category);
$statement -> execute();
return 1;
}catch (PDOException $e){
$dupeQuery = $connection -> prepare("SELECT * FROM emailcollection WHERE emailaddress = '" . $email . "'");
$dupeQuery -> execute();
$number = $dupeQuery -> rowCount();
if ($number > 0){
return 3;
} else {
echo $e -> getMessage();
return 2;
}
}
$connection = NULL;
}
}
?>
Bookmarks