Jump to content

Custom Sendmail.php script


vemana

Recommended Posts

Hi there, sorry - newbie with php here. Any help would be appreciated.

 

I use sendmail.php to send a standard form, although now client has asked for one field to be required.

I've had a look at various help forums but I'm having trouble knowing exactly where the code changes need to go and how to change this specific "phone" field to make it required.

 

Below is the sendmail.php code I'm using, then under that the code from the actual form on the previous page.

 

Page with Form

 

<!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" xml:lang="en" lang="en">

<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

<script type="text/javascript">

<!--

function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}

}

//-->

</script>

<title>Contact Us</title><style type="text/css">

<!--

body,td,th {

font-family: Arial, Helvetica, sans-serif;

font-size: 12px;

}

.left {

}

.left2 {

text-align: left;

}

.left3 {

text-align: left;

}

-->

</style></head>

<body bgcolor="#FFFFFF"><center><table id="Table_01" width="800" height="255" border="0" cellpadding="0" cellspacing="0">

  <tr>

    <td bgcolor="#999999"><table width="280" border="0" align="center">

      <tr>

       

        </tr>

      </table>

      <table width="749" border="0" align="center">

        <tr>

          <td width="743" height="542" bgcolor="#FFFFFF">

         

         

            <form action="sendMail.php" method="get" name="inforequest" id="inforequest">

              <table width="410" border="0" align="center" cellpadding="2">

                <tr>

                  <td nowrap="nowrap" class="left"><div align="right" class="left3">Please Select Information Required</div></td>

                  <td nowrap="nowrap"><label>

                    <input type="checkbox" name="info_required" id="info_required" />

                    Info Pack and Price List<br />

                    <input type="checkbox" name="info_required2" id="info_required2" />

                    Lot Plan

  <br />

  <input type="checkbox" name="info_required3" id="info_required3" />

                    Concept Layouts</label></td>

                  </tr>

                <tr>

                  <td nowrap="nowrap" class="left"><div align="right" class="left3">First Name</div></td>

                  <td nowrap="nowrap"><input name="fname" type="text" id="fname" size="40" /></td>

                  </tr>

                <tr>

                  <td nowrap="nowrap" class="left"><div align="right" class="left3">Last Name</div></td>

                  <td nowrap="nowrap"><input name="lname" type="text" id="lname" size="40" /></td>

                  </tr>

                <tr>

                  <td nowrap="nowrap" class="left"><div align="right" class="left3">Email</div></td>

                  <td nowrap="nowrap"><input name="email" type="text" id="email" size="40" /></td>

                  </tr>

                <tr>

                  <td nowrap="nowrap" class="left2"><div align="right" class="left3">Company</div></td>

                  <td nowrap="nowrap"><input name="company" type="text" id="company" size="40" /></td>

                  </tr>

                <tr>

                  <td nowrap="nowrap" class="left2"><div align="right" class="left3">Phone Number</div></td>

                  <td nowrap="nowrap"><input name="phone" type="text" id="phone" size="40" /></td>

                  </tr>

                <tr>

                  <td valign="top" nowrap="nowrap" class="left2"><div align="right" class="left3">Comments</div></td>

                  <td nowrap="nowrap"><textarea name="comments" cols="38" rows="5" id="comments"></textarea></td>

                  </tr>

                <tr>

                  <td nowrap="nowrap" class="left"> </td>

                  <td nowrap="nowrap"><div align="left">

                    <input type="submit" name="SUBMIT" value="Submit" />

                       

                    <input type="reset" name="RESET" value="Reset" />

                    </div></td>

                  </tr>

                </table>

              <p> </p>

              <p> </p>

              <p> </p>

              </form>

            </td>

          </tr>

        </table>

      <p> </p></td>

  </tr>

  <tr>

    <td height="32"> </td>

  </tr>

</table>

 

</center>

<map name="Map" id="Map">

  <area shape="rect" coords="4,5,83,25" href="website_plan.html" />

  <area shape="rect" coords="104,7,217,28" href="privacy_statement.html" />

</map>

</body></html>

 

 

 

Sendmail.php code:

 

<?php

 

$my_email = "myemai.com.au";

 

/*

 

Enter the continue link to offer the user after the form is sent.  If you do not change this, your visitor will be given a continue link to your homepage.

 

If you do change it, remove the "/" symbol below and replace with the name of the page to link to, eg: "mypage.htm" or "http://www.elsewhere.com/page.htm"

 

*/

 

$continue = "/";

 

/*

 

Step 3:

 

Save this file (FormToEmail.php) and upload it together with your webpage containing the form to your webspace.  IMPORTANT - The file name is case sensitive!  You must save it exactly as it is named above!  Do not put this script in your cgi-bin directory (folder) it may not work from there.

 

THAT'S IT, FINISHED!

 

You do not need to make any changes below this line.

 

*/

 

$errors = array();

 

// Remove $_COOKIE elements from $_REQUEST.

 

if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}

 

 

 

 

 

// Check all fields for an email header.

 

function recursive_array_check_header($element_value)

{

 

global $set;

 

if(!is_array($element_value)){if(preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i",$element_value)){$set = 1;}}

else

{

 

foreach($element_value as $value){if($set){break;} recursive_array_check_header($value);}

 

}

 

}

 

recursive_array_check_header($_REQUEST);

 

if($set){$errors[] = "You cannot send an email header";}

 

unset($set);

 

// Validate email field.

 

if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))

{

 

if(preg_match("/(%0A|%0D|\n+|\r+|:)/i",$_REQUEST['email'])){$errors[] = "Email address may not contain a new line or a colon";}

 

$_REQUEST['email'] = trim($_REQUEST['email']);

 

if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Email address is invalid";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Email address is invalid";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Email address is invalid";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Email address is invalid";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Email address is invalid"; break;}}}}}}

 

}

 

// Check referrer is from same site.

 

if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";}

 

// Check for a blank form.

 

function recursive_array_check_blank($element_value)

{

 

global $set;

 

if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}

else

{

 

foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}

 

}

 

}

 

recursive_array_check_blank($_REQUEST);

 

if(!$set){$errors[] = "You cannot send a blank form";}

 

unset($set);

 

// Display any errors and exit if errors exist.

 

if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}

 

if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}

 

// Build message.

 

function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");}

 

$message = build_message($_REQUEST);

 

$message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL."";

 

$message = stripslashes($message);

 

$subject = "My Form";

 

$headers = "From: " . $_REQUEST['email'];

 

mail($my_email,$subject,$message,$headers);

 

?>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 

<html>

 

<head>

<title>Thanks for your message</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body bgcolor="#ffffff" text="#000000">

 

<div>

<center>

<b>Thank you <?php print stripslashes($_REQUEST['name']); ?></b>

<b>for your enquiry</b><br>

<img src="logo3.gif" alt="" width="300" height="125" />

<p><a href="<?php print $continue; ?>">Click here to continue</a></p>

</center>

</div>

 

</body>

</html>

 

Thanks and apologies if this has been asked many times before

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.