Go Back   MacRumors Forums > Special Interests > Visual Media > Web Design and Development

Reply
 
Thread Tools Search this Thread Display Modes
Old Mar 6, 2012, 09:36 AM   #1
instillsolution
macrumors newbie
 
Join Date: Mar 2012
PHP Contact Form Help - Redirect to a success page

Hi Guys,

I'm trying to put together a contact form on my website using a free PHP form I downloaded and need some assistance. I don't know the first thing about PHP and need some assistance as far as redirecting the page to a fail/success page.

here is the PHP Code:

<?php
if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "myemail@myemail.com";
$email_subject = "Contact Form for Instill Solutions";


function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}

// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}

$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required

$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}

$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";


// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>

<!-- include your own success html here -->

Thank you for contacting us. We will be in touch with you very soon.

<?php
}
?>


So what I want to happen is to have the errors go to certain pages or be able to have the error "posted" to that certain page.

If form submitted correctly go to success.html
If it's not, go to formerror.html and be able to display the error.

Right now it just goes to blank pages for all that. Any help would be greatly appreciated.

I'm just trying to get the pages to have all the content:

http://www.instillsolutions.com/thankyou.html

I only put the actual form on the home page:

http://www.instillsolutions.com
instillsolution is offline   0 Reply With Quote
Old Mar 6, 2012, 11:31 AM   #2
stomer
macrumors 6502a
 
Join Date: Apr 2007
Location: Leeds, UK
Send a message via AIM to stomer
Put an ob_start() at the top of your script and an ob_end_flush() at the very bottom.

Then if you want to redirect you would use something like: header(“Location: /path/to/the/page.html”); die();

P.S. Have a read of filter_input() on php.net and replace all $_POST references will calls to filter_input(). filter_input() has built-in validation/sanitization routines.
__________________
MacBook 1.83GHz C2D 2GB
Mac Mini 2GHz C2D 2GB
TV
stomer is offline   0 Reply With Quote

Reply
MacRumors Forums > Special Interests > Visual Media > Web Design and Development

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
PHP Variable page title. Dal123 Web Design and Development 2 Jan 5, 2014 07:19 AM
How to redirect from publicly available page to locally available page Ecofriend Mac OS X Server, Xserve, and Networking 2 Nov 4, 2013 01:56 PM
PHP Form Wizard Equivalent for Mac? Reg88 Mac Applications and Mac App Store 1 Mar 8, 2013 08:38 PM
HTML Form Validation Using PHP Kilamite Web Design and Development 2 Jul 11, 2012 12:08 PM

Forum Jump

All times are GMT -5. The time now is 10:15 AM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC