form error

I created this contact page (http://icefishingderbys.com/icefish/form/contact.html), but I can’t seem to get past the error when you submit it.

The code I have for the php file is:

[php]<?php
if($_POST)
{
$to_Email = "[email protected]"; //Replace with recipient email address
$subject = ‘WebAuthorsGroup Form’; //Subject line for emails

//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

	//exit script outputting json data
	$output = json_encode(
	array(
		'type'=>'error', 
		'text' => 'Request must come from Ajax'
	));
	
	die($output);
} 

//check $_POST vars are set, exit if any missing
if(!isset($_POST["userFirst"]) || !isset($_POST["userLast"]) || !isset($_POST["userwebsite"]) || !isset($_POST["useraddress"]) || !isset($_POST["usercity"]) || !isset($_POST["userstate"]) || !isset($_POST["userzip"]) || !isset($_POST["userPhone"]) || !isset($_POST["userEmail"]) || !isset($_POST["userorganization"]) || !isset($_POST["userlakename"]) || !isset($_POST["userlakelocation"]) || !isset($_POST["userLMB"]) || !isset($_POST["userSMB"]) || !isset($_POST["userCP"]) || !isset($_POST["userNP"]) || !isset($_POST["userBC"]) || !isset($_POST["userWC"]) || !isset($_POST["userCF"]) || !isset($_POST["userSA"]) || !isset($_POST["userSE"]) || !isset($_POST["userTR"]) || !isset($_POST["userAS"]) || !isset($_POST["userYP"]) || !isset($_POST["userWP"]) || !isset($_POST["userCU"]) || !isset($_POST["userS"]) || !isset($_POST["userAF"]) || !isset($_POST["userderbydate"]) || !isset($_POST["derbytime"]) || !isset($_POST["userMessage"]))
{
	$output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!'));
	die($output);
}

//Sanitize input data using PHP filter_var().
$user_First       = filter_var($_POST["userFirst"], FILTER_SANITIZE_STRING);
$user_Last       = filter_var($_POST["userLast"], FILTER_SANITIZE_STRING);
$user_website      = filter_var($_POST["userwebsite"], FILTER_SANITIZE_STRING);
$user_address       = filter_var($_POST["useraddress"], FILTER_SANITIZE_STRING);
$user_city       = filter_var($_POST["usercity"], FILTER_SANITIZE_STRING);
$user_state       = filter_var($_POST["userstate"], FILTER_SANITIZE_STRING);
$user_zip       = filter_var($_POST["userzip"], FILTER_SANITIZE_STRING);
$user_Phone       = filter_var($_POST["userPhone"], FILTER_SANITIZE_EMAIL);
$user_Email       = filter_var($_POST["userEmail"], FILTER_SANITIZE_STRING);
$user_organization     = filter_var($_POST["userorganization"], FILTER_SANITIZE_STRING);
$user_lakename       = filter_var($_POST["userlakename"], FILTER_SANITIZE_STRING);
$user_lakelocation       = filter_var($_POST["userlakelocation"], FILTER_SANITIZE_STRING);
$user_LMB       = filter_var($_POST["userLMB"], FILTER_SANITIZE_STRING);
$user_SMB       = filter_var($_POST["userSMB"], FILTER_SANITIZE_STRING);
$user_CP       = filter_var($_POST["userCP"], FILTER_SANITIZE_STRING);
$user_NP       = filter_var($_POST["userNP"], FILTER_SANITIZE_STRING);
$user_BC       = filter_var($_POST["userBC"], FILTER_SANITIZE_STRING);
$user_WC       = filter_var($_POST["userWC"], FILTER_SANITIZE_STRING);
$user_CF       = filter_var($_POST["userCF"], FILTER_SANITIZE_STRING);
$user_SA       = filter_var($_POST["userSA"], FILTER_SANITIZE_STRING);
$user_SE       = filter_var($_POST["userSE"], FILTER_SANITIZE_STRING);
$user_TR       = filter_var($_POST["userTR"], FILTER_SANITIZE_STRING);
$user_AS       = filter_var($_POST["userAS"], FILTER_SANITIZE_STRING);
$user_YP       = filter_var($_POST["userYP"], FILTER_SANITIZE_STRING);
$user_WP       = filter_var($_POST["userWP"], FILTER_SANITIZE_STRING);
$user_CU       = filter_var($_POST["userCU"], FILTER_SANITIZE_STRING);
$user_S       = filter_var($_POST["userS"], FILTER_SANITIZE_STRING);
$user_AF       = filter_var($_POST["userAF"], FILTER_SANITIZE_STRING);
$user_species       = filter_var($_POST["userspecies"], FILTER_SANITIZE_STRING);
$user_derbydate       = filter_var($_POST["userderbydate"], FILTER_SANITIZE_STRING);
$user_derbytime       = filter_var($_POST["userderbytime"], FILTER_SANITIZE_STRING);
$user_Message       = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING);

//additional php validation
if(strlen($user_First)<3) // If length is less than 4 it will throw an HTTP error.
{
	$output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
	die($output);
}
if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
{
	$output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
	die($output);
}
if(!is_numeric($user_Phone)) //check entered data is numbers
{
	$output = json_encode(array('type'=>'error', 'text' => 'Only numbers allowed in phone field'));
	die($output);
}
if(strlen($user_Message)<5) //check emtpy message
{
	$output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.'));
	die($output);
}

//proceed with PHP email.
$headers = 'From: '.$user_Email.'' . "\r\n" .
'Reply-To: '.$user_Email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$sentMail = @mail($to_Email, $subject, $user_First, $user_Last, $user_website, $user_address, $user_city, $user_state, $user_zip, $user_Phone, $user_Email, $user_organization, $user_lakename, $user_lakelocation, $user_LMB, $user_SMB, $user_CP, $user_NP, $user_BC, $user_WC, $user_CF, $user_SA, $user_SE, $user_TR, $user_AS, $user_YP, $user_WP, $user_CU, $user_S, $user_AF, $user_species, $user_derbydate, $user_derbytime, $user_Message .'  -'.$user_First, $headers);

if(!$sentMail)
{
	$output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
	die($output);
}else{
	$output = json_encode(array('type'=>'message', 'text' => 'Thank you '.$user_First .'. We will be in contact with you.'));
	die($output);
}

}
?>[/php]

What error?

I’m scratching my because of this :-\

[php]if(!isset($_POST[“userFirst”]) || !isset($_POST[“userLast”]) || !isset($_POST[“userwebsite”]) || !isset($_POST[“useraddress”]) || !isset($_POST[“usercity”]) || !isset($_POST[“userstate”]) || !isset($_POST[“userzip”]) || !isset($_POST[“userPhone”]) || !isset($_POST[“userEmail”]) || !isset($_POST[“userorganization”]) || !isset($_POST[“userlakename”]) || !isset($_POST[“userlakelocation”]) || !isset($_POST[“userLMB”]) || !isset($_POST[“userSMB”]) || !isset($_POST[“userCP”]) || !isset($_POST[“userNP”]) || !isset($_POST[“userBC”]) || !isset($_POST[“userWC”]) || !isset($_POST[“userCF”]) || !isset($_POST[“userSA”]) || !isset($_POST[“userSE”]) || !isset($_POST[“userTR”]) || !isset($_POST[“userAS”]) || !isset($_POST[“userYP”]) || !isset($_POST[“userWP”]) || !isset($_POST[“userCU”]) || !isset($_POST[“userS”]) || !isset($_POST[“userAF”]) || !isset($_POST[“userderbydate”]) || !isset($_POST[“derbytime”]) || !isset($_POST[“userMessage”]))[/php]

why are saying you not true? Wouldn’t you want to execute it if it IS SET? Secondly, it’s bad practice to use $_SERVER requests you should be using $_POST (or the very least $_GET) even if it is an AJAX request.

Also turn on error reporting:
[php]/* Turn on error reporting */
ini_set(‘display_errors’, 1);
ini_set(‘display_startup_errors’, 1);
error_reporting(-1);[/php]

If I am reading that correctly,

[php] //check $_POST vars are set, exit if any missing
if(!isset($_POST[“userFirst”]) || !isset($_POST[“userLast”]) || !isset($_POST[“userwebsite”]) || !isset($_POST[“useraddress”]) || !isset($_POST[“usercity”]) || !isset($_POST[“userstate”]) || !isset($_POST[“userzip”]) || !isset($_POST[“userPhone”]) || !isset($_POST[“userEmail”]) || !isset($_POST[“userorganization”]) || !isset($_POST[“userlakename”]) || !isset($_POST[“userlakelocation”]) || !isset($_POST[“userLMB”]) || !isset($_POST[“userSMB”]) || !isset($_POST[“userCP”]) || !isset($_POST[“userNP”]) || !isset($_POST[“userBC”]) || !isset($_POST[“userWC”]) || !isset($_POST[“userCF”]) || !isset($_POST[“userSA”]) || !isset($_POST[“userSE”]) || !isset($_POST[“userTR”]) || !isset($_POST[“userAS”]) || !isset($_POST[“userYP”]) || !isset($_POST[“userWP”]) || !isset($_POST[“userCU”]) || !isset($_POST[“userS”]) || !isset($_POST[“userAF”]) || !isset($_POST[“userderbydate”]) || !isset($_POST[“derbytime”]) || !isset($_POST[“userMessage”]))
{
$output = json_encode(array(‘type’=>‘error’, ‘text’ => ‘Input fields are empty!’));
die($output);
}[/php]

It would return an error if any of those variables are not set. Or am I reading that wrong, Strider?

I do not see the server constant ($_SERVER[‘HTTP_X_REQUESTED_WITH’]) in the documentation however and that may be throwing an error.

Sponsor our Newsletter | Privacy Policy | Terms of Service