php


Php form not submitting just refreshing page


hey i have an html/php form im working on for a friend and it was previously working then we had some problems with the hosting and now its just not working.... you hit the submit button and it just refreshes and clears the form. I think the problem is in the mailer.php file which i have posted... would appreciate any help! can also post the form.php file if needed
Thanks again
<?php
//start the session
session_start();
//set the return URL
$return_url = "../form.php";
//set the users email address
$email = "touchtheearth#earthlink.net";
//array of fields in form. (In the format "field_name" => "field_label")
$form_fields = array(
"element0" => 'Type of work required',
"element1" => 'First Name',
"element2" => 'Last Name',
"element3" => 'Address',
"element4" => 'City',
"element5" => 'State',
"element6" => 'Zip',
"element7" => 'Home Phone',
"element8" => 'Cell Phone',
"element9" => 'Work Phone',
"element10" => 'Email',
"element11" => 'How did you hear about us?',
"element12" => 'Best method of contact',
"element13" => 'Type of use',
"element14" => 'Linear Length of Bamboo required',
"element15" => 'Will we be installing the bamboo?',
"element16" => 'Is the area machine accessible?',
"element17" => 'Do you want the bamboo contained?',
"element18" => 'PLEASE SUBMIT PHOTOS OF WHERE THE BAMBOO WILL BE INSTALLED',
"element19" => 'Second picture file',
"element20" => 'Comments or concerns?',
"element21" => 'Is there something else you are interested in?',
"element22" => 'idigbamboo form request'
);
$required_fields = array("element0", "element1", "element2", "element3", "element4", "element5", "element6", "element7", "element10", "element14");
$mail_from_name = "element1";
$mail_from_email = "element10";
$mail_subject = "element22";
//uses the email address defined above as the from email.
$send_from_users_email = false;
//sets the PHP setting 'sendmail_from' for use on a windows server.
$windows_server = true;
// Set up the error and success messages.
$message_success = 'Thank you, your message has been sent.';
$message_unset_fields = "Fields marked with * are required.";
// Check key variable from form against session key.
if ( ! isset($_POST['form_token']) || $_POST['form_token'] !== $_SESSION['security_token']) {
// Set a fixed error message if the keys don't match.
redirect($return_url, 'We cannot verify that you are trying to send an email from this form. Please try again.');
}
// SPAM checking. If the "comment" form field has been filled out,
// send back to form asking to remove content and exit the script.
if ($_POST['comment']) {
redirect($return_url, 'Please remove content from the last textarea before submitting the form again. This is to protect against SPAM abuse.');
}
/////////////////////////
// PROCESS FORM FIELDS //
/////////////////////////
$magic_quotes = (bool) get_magic_quotes_gpc();
foreach ($_POST['form'] as $key => $value) {
if ($magic_quotes) {
$value = stripslashes($value);
}
$_SESSION['form'][$key] = $value;
}
///////////////////////////
// CHECK REQUIRED FIELDS //
///////////////////////////
//if any of the required fields are empty
if (check_required_fields($required_fields) === false) {
//return to form with error message.
redirect($return_url, $message_unset_fields);
} else {
///////////////////////////////////
// ALL IS OK, SETUP GLOBAL VAR'S //
///////////////////////////////////
//check email address
if ( ! check_email($email)) unset($email);
//set mime boundry. Needed to send the email. Mixed seperates text from attachments.
$mixed_mime_boundary = 'rms-mix-x'.md5(mt_rand()).'x';
//alt seperates html from plain text.
$alt_mime_boundary = 'rms-alt-x'.md5(mt_rand()).'x';
//set the from address if user supplied email is invalid use form owners.
$submitted_email = '';
if (isset($_SESSION['form'][$mail_from_email])) {
$submitted_email = $_SESSION['form'][$mail_from_email];
}
if (check_email($submitted_email) && $send_from_users_email === false) {
$from = $reply_to = $_SESSION['form'][$mail_from_name].' <'.$submitted_email.'>';
} else {
$from = '<'.$email.'>';
$reply_to = check_email($submitted_email) ? '<'.$submitted_email.'>' : $from;
}
//set the email subject
$subject = '';
if (isset($_SESSION['form'][$mail_subject])) {
$subject = $_SESSION['form'][$mail_subject];
}
//email headers
if ($windows_server === true) {
$headers = "From: $from\r\n" .
"Reply-to: $reply_to\r\n" .
"MIME-Version: 1.0\r\nContent-Type: multipart/mixed; " .
"boundary=$mixed_mime_boundary";
} else {
$headers = "From: $from\n" .
"Reply-to: $reply_to\n" .
"MIME-Version: 1.0\nContent-Type: multipart/mixed; " .
"boundary=$mixed_mime_boundary";
}
////////////////////////////
// CONSTRUCT HTML CONTENT //
////////////////////////////
//Construct HTML email content, looping through each form element
//Note: When you get to a file attachment you need to use $_FILES['form_element']['name']
//This will just output the name of the file. The files will actually be attached at the end of the message.
//Set a variable for the message content
$html_content = "<html>\n<head>\n<title>" .
safe_escape_string($subject) .
"</title>\n</head>\n<body>\n<p>\n";
////////////////////////////
// CONSTRUCT TEXT CONTENT //
////////////////////////////
//construct a plain text version of the email.
$text_content = '';
//build a message from the reply for both HTML and text in one loop.
foreach ($form_fields as $field => $label) {
$html_content .= '<b>' . safe_escape_string($label) . '</b> ';
$text_content .= "$label ";
if (isset($_FILES[$field])) {
$string = (isset($_FILES[$field]['name'])) ? $_FILES[$field]['name'] : '';
} else {
$string = (isset($_SESSION['form'][$field])) ? $_SESSION['form'][$field] : '';
}
$html_content .= nl2br(safe_escape_string($string)) . "<br /><br />\n";
$text_content .= "$string\n\n";
}
//close the HTML content.
$html_content .= "</p>\n</body>\n</html>";
/////////////////////////////
// CONSTRUCT EMAIL MESSAGE //
/////////////////////////////
//Now we combine both HTML and plain text version of the email into one.
//Creating the message body which contains a Plain text version and an HTML version,
//users email client will decide which version to display
$message = "\r\n--$mixed_mime_boundary\r\n" .
"Content-Type: multipart/alternative; boundary=$alt_mime_boundary\r\n\r\n" .
"--$alt_mime_boundary\r\n" .
"Content-Type: text/plain; charset=UTF-8; format=flowed\r\n" .
"Content-Transfer-Encoding: Quoted-printable\r\n\r\n" .
"$text_content\r\n\r\n" .
"--$alt_mime_boundary\r\n" .
"Content-Type: text/html; charset=UTF-8\r\n" .
"Content-Transfer-Encoding: Quoted-printable\r\n\r\n" .
"$html_content\r\n\r\n" .
"--$alt_mime_boundary--\r\n\r\n" .
"\r\n\r\n--$mixed_mime_boundary";
//////////////////////
// FILE ATTACHMENTS //
//////////////////////
//loop through the $_FILES global array and add each attachment to the form.
if (isset($_FILES)) {
foreach ($_FILES as $attachment) {
$filename = $attachment['name'];
//if the file has been uploaded
if ($attachment['error'] === UPLOAD_ERR_OK && is_uploaded_file($attachment['tmp_name'])) {
$file = fopen($attachment['tmp_name'],'rb');
$data = fread($file,filesize($attachment['tmp_name']));
fclose($file);
$data = chunk_split(base64_encode($data));
$message .= "\r\nContent-Type: application/octet-stream; name=\"$filename\"" .
"\r\nContent-Disposition: attachment; filename=\"$filename\"" .
"\r\nContent-Transfer-Encoding: base64\r\n\r\n$data\r\n\r\n--$mixed_mime_boundary";
} else if ($attachment['error'] !== UPLOAD_ERR_NO_FILE) {
//try to provide a useful error message determined from the error code.
switch ($attachment['error']) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
$error = "File $filename exceeds the " . ini_get('upload_max_filesize') . 'B limit for the server.';
break;
case UPLOAD_ERR_PARTIAL:
$error = "Only part of the file $filename could be uploaded, please try again.";
break;
default:
$error = "There has been an error attaching the file $filename, please try again.";
}
redirect($return_url, $error);
}
}
}
//finish off message
$message .= '--';
//for windows users.
if ($windows_server === true) {
ini_set('sendmail_from', $email);
}
//if the mail sending works
if (#mail($email, $subject, $message, $headers)) {
//set the success message
$notice = $message_success;
unset($_SESSION['form']);
} else {
$notice = "I'm sorry, there seems to have been an error trying to send your email. Please try again.";
}
//redirect to the form
redirect($return_url, $notice);
}
//////////////////////
// GLOBAL FUNCTIONS //
//////////////////////
// Redirects back to the form, an optional session message can be defined.
function redirect($url, $message = NULL) {
if ($message) {
$_SESSION['formMessage'] = $message;
}
header('Location: ' . $url);
exit;
}
// Function to escape data inputted from users. This is to protect against embedding
// of malicious code being inserted into the HTML email.
// Sample code: safe_escape_string($_POST['form_field'])
function safe_escape_string($string) {
return htmlspecialchars($string, ENT_QUOTES);
}
// Function to check the validity of email address.
function check_email($email) {
return (bool) preg_match('/^([a-z0-9_]|\-|\.)+#(([a-z0-9_]|\-)+\.)+[a-z]{2,}$/i', $email);
}
// Function to check the required fields are filled in.
function check_required_fields($required_fields) {
foreach ($required_fields as $field) {
if (( ! isset($_SESSION['form'][$field]) || empty($_SESSION['form'][$field])) &&
( ! isset($_FILES[$field]) || empty($_FILES[$field]['name']))) {
return false;
}
}
return true;
}

Related Links

How to preserve the user input in my form after submit? [duplicate]
PHP MongoDB Store Object as String
curl post Json with addslashes
qTranslate-x - How to show just the flag on menu
Laravel registration: Insert two rows into separated tables
Force CSS updates in wordpress w/ wp_enqueue_script only works on localhost?
Getting only the child elements of the first element
RESTfull API for website and admin panel
How to Display Post Expiring plugin on posts data table wordpress plugin
dropdown selection message missing PHP
how to get all parameter from foreign key entity symfony 3
PHP concatenate &para to variable
Trying to pass ajax value from php to jquery in selectize
PHP Error: T_CONSTANT_ENCAPSED_STRING [duplicate]
.htaccess Remove trailing / unless directory
Don't allow new user, if a user has already logged in

Categories

HOME
jboss
spring-data
paypal-ipn
whmcs
visual-studio-2010
celery
docker-cloud
gentelella
angular-meteor
onvif
u-boot
mahout-recommender
gmp
significance
adminlte
activeadmin
tableview
pdf.js
strophe.js
bitbake
dnsmasq
xenapp
rspec-rails
overwrite
directfb
microsoft-ui-automation
ejml
google-prediction
fluid-mac-app-engine
transparency
docker-ucp
.net-micro-framework
comm
openstack-glance
webvtt
winmerge
scala-collections
email-forwarding
ltrace
hmmlearn
oid
between
qtcpsocket
dojo-build
swiffy
distributed-cache
utf-16
wif4.5
bayesglm
variable-length-array
wso2ml
search-form
supersocket.net
text-align
python-c-extension
findersync
phonegap-facebook-plugin
device-admin
object-code
osascript
tabletools
oxygene
profiles
eclim
mute
jquery-transit
jquery-lazyload
series-40
uploading
litespeed
will-paginate
qt-mobility
fork-join
fragment-identifier
printqueue
ccl
.net-services
fuzzy-comparison
downcasting
version-control-migration
acceleration
error-detection

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App