PDA

View Full Version : Having trouble with "submit" button php function



TWyPGn
15 Jun 2009, 09:41 AM
Hello, I am making a contact form for my website with a submit button where a form data is sent to you through email, and it also generates a message "Thank you for your interest. We'll respond to you shortly" after the "submit" button is clicked.

For the php script for submit button, I took help from Elizabeth Castro's book "HTML, XHTML & CSS", but it is not generating the desired output, instead the script page opens on clicking submit. Let me mention here that I don't know anything about php/javascript. Following are the html codes for the contact form, and php code for submit button:

HTML:


<div id="form">

<form action="emailform.php" method="post">

<p class="legend">Personal Information</p>

<fieldset id="personal">
<label>Name:</label><input type="text" name="name" size="30" maxlength="40" /> <br />
<label>City &amp; Country:</label><input type="text" name="city &amp; country" size="30" /> <br />

<label>Phone:</label><input type="text" name="phone" size="30" /> <br />
<label>Email Address:</label><input type="text" name="email address" size="30" maxlength="40" /><br />

</fieldset>


<p class="legend">Subject</p>

<fieldset id="choices">

<p id="subject"><label>Tell us what your query is about:</label>
<select name="subject" >
<option value="Product Inquiry">Product Inquiry</option>
<option value="Order Inquiry">Order Inquiry</option>
<option value="Shipping Inquiry">Delivery Inquiry</option>
<option value="General Inquiry">General Inquiry</option>
</select>
</p>

</fieldset>

<p class="legend">Your question or message here</p>

<fieldset id="questions">

<textarea name="comments" rows="3" cols="40">Yor questions or message here</textarea>
</fieldset>

<p id="buttons">
<input type="submit" name="submit" value="Submit" />
</p>

</form>
</div>

PHP from Elizabeth Castro's website:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Emailing Form Data</title>
<style type="text/css">
code {color:#F00C4D;font-weight:bold;font-size:1.2em}
i {color: #6D0CF0}
th, td {padding:.1em;border:1px solid blue;text-align:left}
</style>
</head>
<body>


<?php
//This is a very simple PHP script that outputs the name of each bit of information (that corresponds to the <code>name</code> attribute for that field) along with the value that was sent with it right in the browser window, and then sends it all to an email address (once you've added it to the script).

if (empty($_POST)) {
print "<p>No data was submitted.</p>";
print "</body></html>";
exit();
}

//Creates function that removes magic escaping, if it's been applied, from values and then removes extra newlines and returns to foil spammers. Thanks Larry Ullman!
function clear_user_input($value) {
if (get_magic_quotes_gpc()) $value=stripslashes($value);
$value= str_replace( "\n", '', trim($value));
$value= str_replace( "\r", '', $value);
return $value;
}


if ($_POST['comments'] == 'your questions or comments here') $_POST['comments'] = '';

//Create body of message by cleaning each field and then appending each name and value to it

$body ="Here is the data that was submitted:\n";

foreach ($_POST as $key => $value) {
$key = clear_user_input($key);
$value = clear_user_input($value);
if ($key=='extras') {

if (is_array($_POST['extras']) ){
$body .= "$key: ";
$counter =1;
foreach ($_POST['extras'] as $value) {
//Add comma and space until last element
if (sizeof($_POST['extras']) == $counter) {
$body .= "$value\n";
break;}
else {
$body .= "$value, ";
$counter += 1;
}
}
} else {
$body .= "$key: $value\n";
}
} else {

$body .= "$key: $value\n";
}
}

extract($_POST);
//removes newlines and returns from $email and $name so they can't smuggle extra email addresses for spammers
$email = clear_user_input($email);
$name = clear_user_input($name);

//Create header that puts email in From box along with name in parentheses and sends bcc to alternate address
$from='From: '. $email . "(" . $name . ")" . "\r\n" . 'Bcc: yourmail@yourdomain.com' . "\r\n";


//Creates intelligible subject line that also shows me where it came from
$subject = 'Query from Web Site';

//Sends mail to me, with elements created above
mail ('youremail@yourdomain.com', $subject, $body, $from);


?>

<p>Thanks for your interest! We'll respond to you shortly.</p>


</body>
</html>

-----------------------------------
If anybody could please help me with this php code and submit button to work properly, I'll be very grateful. Thanks!