Hi there, OK first of all, big apologies for what I assume is really fundamental errors in the structure of my code. I'm really new at this and still learning, but I'm almost at the stage of giving up on this one. I've rewritten the code so many times I can't even remember what it was originally like (when it incidentally worked better).
What I am trying to do, is pass a simple form over to a php email script on an external server which validates the form, sends the email (if valid) and returns the user to a success/fail/error page on the original host server.
I'm sure looking at the code might enlighten some of you more to what I'm trying to do, no doubt it may just confuse the hell out of most. (I know I am at this point!)
Anyway here it is:
<?php
if(isset($_POST['email'])) {
//grab referal info from POST
$path = explode('/', $_SERVER['HTTP_REFERER']);
$referer = $path[2];
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "jr@creativeheat.co.uk";
$email_subject = "Website booking inquiry";
$errortype = "";
function died($error) {
// your error code can go here
header( 'Location: http://'.$referer.'/booking/'$error ) ;
echo $error."<br /><br />";
echo "We are very sorry, but there were error(s) found with the form your submitted. ";
echo "These errors appear below.<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
//Start by setting the values of the checkboxes
if (isset($_POST['booking_0'])) { $book1 = $_POST['booking_0']; if( $book1 == 'Bedroom(s)') { $book1 = " The Bedroom(s) n"; }}
if (isset($_POST['booking_1'])) { $book2 = $_POST['booking_1']; if( $book2 == 'Meeting Room') { $book2 = " The Meeting Room n";}}
if (isset($_POST['booking_2'])) { $book3 = $_POST['booking_2']; if( $book3 == 'Barn') { $book3 = " The Barn n"; }}
if (isset($_POST['booking_3'])) { $book4 = $_POST['booking_3']; if( $book4 == 'Campsite') { $book4 = " The Campsite n";}}
//then check for an all false
$errortype = "";
$error_message = "";
if (!isset($_POST[booking_0]) && !isset($_POST[booking_1]) && !isset($_POST[booking_2]) && !isset($_POST[booking_3])) {
//redirect to NO BOOKING TYPE SELECTED page
$error_message = 'error';
$errortype = 'bookingerr';
died($errortype) ;
}
//check everything else
$errortype = "";
$error_message = "";
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['number']) ||
!isset($_POST['email']) ||
!isset($_POST['adults']) ||
!isset($_POST['children']) ||
!isset($_POST['from_date']) ||
!isset($_POST['to_date']) ||
!isset($_POST['disabled']) ||
!isset($_POST['parking']) ||
!isset($_POST['general'])) {
//redirect to GENERAL INVALIDATION page
$error_message = 'error';
$errortype = 'requirederror' ;
// died($errortype) ;
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$telephone = $_POST['number']; // required
$email_from = $_POST['email']; // required
$adults = $_POST['adults']; // required
$children = $_POST['children']; // required
$fdate = $_POST['from_date']; // required
$tdate = $_POST['to_date']; // required
$disabled = $_POST['disabled']; // not required
$parking = $_POST['parking']; // not required
$comments = $_POST['general']; // not required
$email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$";
$errortype = "";
$error_message = "";
if(!eregi($email_exp,$email_from)) {
//redirect to INVALID EMAIL page
$error_message = 'error';
$errortype = 'emailinvalid';
// died($errortype) ;
}
$string_exp = "^[a-z .'-]+$";
$errortype = "";
$error_message = "";
if(!eregi($string_exp,$first_name)) {
//redirect to INVALID FIRSTNAME page
$error_message = 'error';
$errortype = 'fnameerror' ;
// died($errortype) ;
}
$errortype = "";
$error_message = "";
if(!eregi($string_exp,$last_name)) {
//redirect to INVALID LASTNAME page
$error_message = 'error';
$errortype = 'lnameerror' ;
// died($errortype) ;
}
$errortype = "";
$error_message = "";
if(strlen($comments) < 2) {
//redirect to INVALID COMMENTS page
$error_message = 'error';
$errortype = 'commentserror' ;
// died($errortype) ;
}
$string_exp = "^[0-9 .-]+$";
$errortype = "";
$error_message = "";
if(!eregi($string_exp,$telephone)) {
//redirect to INVALID TELEPHONE page
$error_message = 'error';
$errortype = 'telephoneerror' ;
// died($errortype) ;
}
if(strlen($error_message) > 0) {
died($errortype) ;
}
$email_message = "Form details below.nn";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($first_name)." ".clean_string($last_name)."n";
$email_message .= "Contact number: ".clean_string($telephone)."n";
$email_message .= "Email address: ".clean_string($email_from)."nn";
$email_message .= "Interested in availability of the following: n";
$email_message .= $book1.$book2.$book3.$book4."n";
$email_message .= "Date from: ".clean_string($fdate)."n";
$email_message .= "Date to: ".clean_string($tdate)."nn";
$email_message .= "Number of...n";
$email_message .= "Adults: ".clean_string($adults)."n";
$email_message .= "Children: ".clean_string($children)."nn";
$email_message .= "Disabled? ".clean_string($disabled)."n";
$email_message .= "Parking? ".clean_string($parking)."nn";
$email_message .= "Additional Information: nn";
$email_message .= clean_string($comments);
// create email headers
$headers = 'From: '.$email_from."rn".
'Reply-To: '.$email_from."rn" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
//redirect to SUCCESS page
header( 'Location: http://'.$referer.'/booking/success' ) ;
}
?>
The form is here: http://claverhamtrust.squarespace.com/booking/ I have set values for most of the fields to avoid having to retype information every time I submitted the form. The email aspect of this for works perfectly, it is just the error processing and redirect that is broken/poorly written.
Absolutely ANY help on this would be much appreciated. I'm going to continue to try in the mean time though, so if things don't seem to function as you'd expect given the code above it may be because I am changing it live. If I make any progress though, I'll post it here.
Thanks
Formatting echo from database
So I have a database that stores First and last names, then echos them back to a website, as of now the entire first and last name echos back (John Smith) I want the last name to just display the
FPDF Help
I've been playing with the FPDF module. I was building a form and rolling right along and then suddenly I started getting the "FPDF error: Some data has already been output, can't send PDF
How to show more than 1 users with this code...
Hello,i have a table that shows users only if I, as Administrator, want to be shown. But its showing just 1 user and i want to show at least 4. If i copy the code, or use loop, its showing the same
how to configure ADS in ABAP instance
Hi All,
need help in php variable
i have a php variable on one pageCode: [Select]$lastId = mysql_insert_id($db);echo $lastId;i want to send this variable and the value in it to second page when i click on submit buttoni already tried
Executing an exe
Hi. I have some bizarre problem with exec (other any other method) to launch exe's. I am making a game server booking system and the part that is not working is the one with the launching the server
Stats of viewers
Hello. I have a website in php and people can login. I want to make an admin control panel where u can see how many people are currently logged in and also how many people in total (including the ones
How would I convert this into code using an if statement?
ES equals exam score m equals $mean s equals $total. I already coded my mean and total so I'm not going to post my code unless it is necessary. I want to know how to get this into code form using if
Question handling xml data
Hello, I have sucessfull followed this tutorialhttp://www.phpfreaks.com/tutorial/handling-xml-dataand used xpath to find the books I need, here is my codeCode: [Select]<?php// load
Help Ordering Arrays
Hi, I have 3 arrays as shown below.Code: $users = $this->get_latest_users();$flirt = $this->get_latest_flirts();$hotlist = $this->get_latest_hotlist();These arrays for a key have