Register free!
Search
 
     

The Green Industry's Resource Center


Click for Weather
Reply
 
Thread Tools Display Modes
  #11  
Old 03-21-2007, 03:36 PM
StBalor StBalor is offline
LawnSite Senior Member
 
Join Date: Mar 2006
Location: Millersville, Maryland
Posts: 801
Quote:
Originally Posted by Dirty Water View Post
Here is a PHP script I just wrote to help you out:

Code:
<?php

// Change this to your e-mail address:

$myEmail = 'email@email.com';

// Gather Form Data into variables
$name = $_POST['name'];
$email = $_POST['email'];
$address = $_POST['address'];
$city = $_POST['city'];
$zip = $_POST['zip'];

$phonearray = array($_POST['area'],$_POST['exchange'],$_POST['number']);

// Parse the phone number into one variable with hyphens.
$phonenumber = implode('-',$phonearray);

// Remove the spaces in the names in your HTML form to match these:

$service = $_POST['BasicLawnService'];
$other = $_POST['OtherServices'];

// E-mail variables

$subject = 'Automated Estimate Request from Website';

// Build the e-mail message:
$message = "Name: $name \n Email: $email \n Address: $address \n City: $city \n ZipCode: $zipcode \n \n Phone Number: $phonenumber \n \n Service Requested: $service \n \n Other Services: $other";

// Send mail
mail ($myEmail, $subject, $message);
?>
I didn't test run this, but it should work.
I replaced all my text with yours and now i have no form. so that did not work.
__________________
why i like cutting lawns so much:

It's the only job i know,
Where i can walk in circles and talk to myself
And no one thinks i'm crazy.
Reply With Quote
  #12  
Old 03-21-2007, 04:12 PM
Dirty Water's Avatar
Dirty Water Dirty Water is offline
LawnSite Fanatic
 
Join Date: May 2005
Location: Redmond, WA
Posts: 6,802
You don't replace the HTML form with that. That will stay.

This is the script that runs on the server that processes the form. You will need to modify a few lines of your HTML Form, but otherwise it stays.

The lines to modify is this:

<form method="get" action="http://www.sunvalleylawnservice.com/Estimate.htm" name="myform">

Change that line to this:

<form method="post" action="estimate.php" name="myform">

The code I wrote should be put into a file called "estimate.php" and stored on your server.

Then modify these lines:

<select name="Basic Lawn Service">

Take out the spaces in the name attribute:

<select name="BasicLawnService">

Same with this one:

<textarea name="Other Services:" rows="4"></textarea><br><br>

Becomes:

<textarea name="OtherServices:" rows="4"></textarea><br><br>

Good luck
Reply With Quote
  #13  
Old 03-21-2007, 06:51 PM
StBalor StBalor is offline
LawnSite Senior Member
 
Join Date: Mar 2006
Location: Millersville, Maryland
Posts: 801
Well i messed with it some more and now when i submit it sends me to the success page. But i do not recieve any email.
__________________
why i like cutting lawns so much:

It's the only job i know,
Where i can walk in circles and talk to myself
And no one thinks i'm crazy.
Reply With Quote
  #14  
Old 03-21-2007, 07:20 PM
Dirty Water's Avatar
Dirty Water Dirty Water is offline
LawnSite Fanatic
 
Join Date: May 2005
Location: Redmond, WA
Posts: 6,802
Did you end up using the php code I wrote?
Reply With Quote
  #15  
Old 03-21-2007, 08:25 PM
StBalor StBalor is offline
LawnSite Senior Member
 
Join Date: Mar 2006
Location: Millersville, Maryland
Posts: 801
Quote:
Originally Posted by Dirty Water View Post
Did you end up using the php code I wrote?
No, i do not know anything about this and you did not leave much on instructions. i just found another tutorial and tried that.
__________________
why i like cutting lawns so much:

It's the only job i know,
Where i can walk in circles and talk to myself
And no one thinks i'm crazy.
Reply With Quote
  #16  
Old 03-21-2007, 10:15 PM
freshfitz freshfitz is offline
LawnSite Member
 
Join Date: Oct 2003
Location: west chester pa
Posts: 5
Tested working create a file estimate.htm and put this copy and paste this code
PHP Code:
<html>

<
form method="post" enctype="multipart/form-data" action="formmail.php">
<
input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<
input type="hidden" name="path_to_file" value="/www/uploaded/files">
<
input type="hidden" name="require" value="email,phone_no">
<
input type="hidden" name="recipient" value="your@email.com">
<
input type="hidden" name="sort" value="alphabetic">
<
input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">
<
table>
 <
tr>
  <
td>First and Last Name</td><td><input type=text name="Name"></td>
 </
tr>
 <
tr>
  <
td>Your Email:</td><td><input type=text name="email"></td>
 </
tr>
 <
tr>
  <
td>Street Address</td><td><input type=text name="Street_Address"></td>
 </
tr>
 <
tr>
  <
td>City Of Residence</td><td><input type=text name="City"></td>
 </
tr>
 <
tr>
  <
td>Zip Code:</td><td><input type=text name="Zip"></td>
 </
tr>
 <
tr>
  <
td>Phone Number</td><td><input type=text name="Phone_number"></td>
 </
tr>
 <
tr>
  <
td colspan="2">
    <
p align="right">
    <
select name="Lawn_package" size="3" multiple>
     <
option>Basic Lawn Service</option>
     <
option>SVLS Lawn Package</option>
     <
option>Custom Lawn Package</option>
     <
option>Complete Lawn Package</option>
     <
option>Option 5</option>
    </
select></td>
 </
tr>
</
table>

<
table id="table1">
 <
tr>
  <
td>Phone Number</td><td><textarea name="Other Services:" rows="4"></textarea></td>
 </
tr>
</
table>

<
br><input type="submit"><input type="reset"><br><hr>

</
form>

</
html
Create a file formmail.php and put in same directory as estimate.htm copy and paste the code below for formmail.php

PHP Code:
<?

// for ultimate security, use this instead of using the form
$recipient "estimate@sunvalleylawnservice.com"// youremail@domain.com

// bcc emails (separate multiples with commas (,))
$bcc "";

// referers.. domains/ips that you will allow forms to
// reside on.
$referers = array ('sunvalleylawnservice.com','www.sunvalleylawnservice.com','127.0.0.1');

// banned emails, these will be email addresses of people
// who are blocked from using the script (requested)
$banlist = array ('*@somedomain.com''user@domain.com''etc@domains.com');

// field / value seperator
define("SEPARATOR", ($separator)?$separator:": ");

// content newline
define("NEWLINE", ($newline)?$newline:"\n");

// formmail version (for debugging mostly)
define("VERSION""5.0");


// our mighty error function..
function print_error($reason,$type 0) {
   
build_body($title$bgcolor$text_color$link_color$vlink_color$alink_color$style_sheet);
   
// for missing required data
   
if ($type == "missing") {
      if (
$missing_field_redirect) {
         
header("Location: $missing_field_redirect?error=$reason");
         exit;
      } else {
      
?>
      The form was not submitted for the following reasons:<p>
      <ul><?
      
echo $reason."\n";
      
?></ul>
      Please use your browser's back button to return to the form and try again.<?
      
}
   } else { 
// every other error
      
?>
      The form was not submitted because of the following reasons:<p>
      <?
   
}
   echo 
"<br><br>\n";
  
   exit;
}

// function to check the banlist
// suggested by a whole lot of people.. Thanks
function check_banlist($banlist$email) {
   if (
count($banlist)) {
      
$allow true;
      foreach(
$banlist as $banned) {
         
$temp explode("@"$banned);
         if (
$temp[0] == "*") {
            
$temp2 explode("@"$email);
            if (
trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
               
$allow false;
         } else {
            if (
trim(strtolower($email)) == trim(strtolower($banned)))
               
$allow false;
         }
      }
   }
   if (!
$allow) {
      
print_error("You are using from a <b>banned email address.</b>");
   }
}

// function to check the referer for security reasons.
// contributed by some one who's name got lost.. Thanks
// goes out to him any way.
function check_referer($referers) {
   if (
count($referers)) {
      
$found false;

      
$temp explode("/",getenv("HTTP_REFERER"));
      
$referer $temp[2];
      
      if (
$referer=="") {$referer $_SERVER['HTTP_REFERER'];
         list(
$remove,$stuff)=split('//',$referer,2);
         list(
$home,$stuff)=split('/',$stuff,2);
         
$referer $home;
      }
      
      for (
$x=0$x count($referers); $x++) {
         if (
eregi ($referers[$x], $referer)) {
            
$found true;
         }
      }
      if (
$referer =="")
         
$found false;
      if (!
$found){
         
print_error("You are coming from an <b>unauthorized domain.</b>");
         
error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")"0);
      }
         return 
$found;
      } else {
         return 
true// not a good idea, if empty, it will allow it.
   
}
}
if (
$referers)
   
check_referer($referers);

if (
$banlist)
   
check_banlist($banlist$email);

// This function takes the sorts, excludes certain keys and 
// makes a pretty content string.
function parse_form($array$sort "") {
   
// build reserved keyword array
   
$reserved_keys[] = "MAX_FILE_SIZE";
   
$reserved_keys[] = "required";
   
$reserved_keys[] = "redirect";
   
$reserved_keys[] = "require";
   
$reserved_keys[] = "path_to_file";
   
$reserved_keys[] = "recipient";
   
$reserved_keys[] = "subject";
   
$reserved_keys[] = "sort";
   
$reserved_keys[] = "style_sheet";
   
$reserved_keys[] = "bgcolor";
   
$reserved_keys[] = "text_color";
   
$reserved_keys[] = "link_color";
   
$reserved_keys[] = "vlink_color";
   
$reserved_keys[] = "alink_color";
   
$reserved_keys[] = "title";
   
$reserved_keys[] = "missing_fields_redirect";
   
$reserved_keys[] = "env_report";
   
$reserved_keys[] = "submit";
   if (
count($array)) {
      if (
is_array($sort)) {
         foreach (
$sort as $field) {
            
$reserved_violation 0;
            for (
$ri=0$ri<count($reserved_keys); $ri++)
               if (
$array[$field] == $reserved_keys[$ri]) $reserved_violation 1;

            if (
$reserved_violation != 1) {
               if (
is_array($array[$field])) {
                  for (
$z=0;$z<count($array[$field]);$z++)
                     
$content .= $field.SEPARATOR.$array[$field][$z].NEWLINE;
               } else
                  
$content .= $field.SEPARATOR.$array[$field].NEWLINE;
            }
         }
      }
      while (list(
$key$val) = each($array)) {
         
$reserved_violation 0;
         for (
$ri=0$ri<count($reserved_keys); $ri++)
            if (
$key == $reserved_keys[$ri]) $reserved_violation 1;

         for (
$ri=0$ri<count($sort); $ri++)
            if (
$key == $sort[$ri]) $reserved_violation 1;

         
// prepare content
         
if ($reserved_violation != 1) {
            if (
is_array($val)) {
               for (
$z=0;$z<count($val);$z++)
                  
$content .= $key.SEPARATOR.$val[$z].NEWLINE;
            } else
               
$content .= $key.SEPARATOR.$val.NEWLINE;
         }
      }
   }
   return 
$content;
}

// mail the content we figure out in the following steps
function mail_it($content$subject$email$recipient) {
   global 
$attachment_chunk$attachment_name$attachment_type$attachment_sent$bcc;

   
$ob "----=_OuterBoundary_000";
   
$ib "----=_InnerBoundery_001";
   
   
$headers  "MIME-Version: 1.0\r\n"
   
$headers .= "From: ".$email."\n"
   
$headers .= "To: ".$recipient."\n"
   
$headers .= "Reply-To: ".$email."\n";
   if (
$bcc$headers .= "Bcc: ".$bcc."\n"
   
$headers .= "X-Priority: 1\n"
   
$headers .= "X-Mailer: DT Formmail".VERSION."\n"
   
$headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".$ob."\"\n";
   
          
   
$message  "This is a multi-part message in MIME format.\n";
   
$message .= "\n--".$ob."\n";
   
$message .= "Content-Type: multipart/alternative;\n\tboundary=\"".$ib."\"\n\n";
   
$message .= "\n--".$ib."\n";
   
$message .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
   
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
   
$message .= $content."\n\n";
   
$message .= "\n--".$ib."--\n";
   if (
$attachment_name && !$attachment_sent) {
      
$message .= "\n--".$ob."\n";
      
$message .= "Content-Type: $attachment_type;\n\tname=\"".$attachment_name."\"\n";
      
$message .= "Content-Transfer-Encoding: base64\n";
      
$message .= "Content-Disposition: attachment;\n\tfilename=\"".$attachment_name."\"\n\n";
      
$message .= $attachment_chunk;
      
$message .= "\n\n";
      
$attachment_sent 1;
   }
   
$message .= "\n--".$ob."--\n";
   
   
mail($recipient$subject$message$headers);
}

// take in the body building arguments and build the body tag for page display
function build_body($title$bgcolor$text_color$link_color$vlink_color$alink_color$style_sheet) {
   if (
$style_sheet)
      echo 
"<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
   if (
$title)
      echo 
"*********$title</title>\n";
   if (!
$bgcolor)
      
$bgcolor "#FFFFFF";
   if (!
$text_color)
      
$text_color "#000000";
   if (!
$link_color)
      
$link_color "#0000FF";
   if (!
$vlink_color)
      
$vlink_color "#FF0000";
   if (!
$alink_color)
      
$alink_color "#000088";
   if (
$background)
      
$background "background=\"$background\"";
   echo 
"<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
}

// check for a recipient email address and check the validity of it
// Thanks to Bradley miller (bradmiller@accesszone.com) for pointing
// out the need for multiple recipient checking and providing the code.
$recipient_in split(',',$recipient);
for (
$i=0;$i<count($recipient_in);$i++) {
   
$recipient_to_test trim($recipient_in[$i]);
   if (!
eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,6}$"$recipient_to_test)) {
      
print_error("<b>I NEED VALID RECIPIENT EMAIL ADDRESS ($recipient_to_test) TO CONTINUE</b>");
   }
}

// This is because I originally had it require but too many people
// were used to Matt's Formmail.pl which used required instead.
if ($required)
   
$require $required;
// handle the required fields
if ($require) {
   
// seperate at the commas
   
$require ereg_replace" +"""$require);
   
$required split(",",$require);
   for (
$i=0;$i<count($required);$i++) {
      
$string trim($required[$i]);
      
// check if they exsist
      
if((!(${$string})) || (!(${$string}))) {
         
// if the missing_fields_redirect option is on: redirect them
         
if ($missing_fields_redirect) {
            
header ("Location: $missing_fields_redirect");
            exit;
         }
         
$require;
         
$missing_field_list .= "<b>Missing: $required[$i]</b><br>\n";
      }
   }
   
// send error to our mighty error function
   
if ($missing_field_list)
      
print_error($missing_field_list,"missing");
}

// check the email fields for validity
if (($email) || ($EMAIL)) {
   
$email trim($email);
   if (
$EMAIL$email trim($EMAIL);
   if (!
eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$"$email))
      
print_error("your <b>email address</b> is invalid");
   
$EMAIL $email;
}

// check zipcodes for validity
if (($ZIP_CODE) || ($zip_code)) {
   
$zip_code trim($zip_code);
   if (
$ZIP_CODE$zip_code trim($ZIP_CODE);
   if (!
ereg("(^[0-9]{5})-([0-9]{4}$)"trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$"trim($zip_code))) && (!ereg("(^[0-9]{5})"trim($zip_code))))
      
print_error("your <b>zip/postal code</b> is invalid");
}

// check phone for validity
if (($PHONE_NO) || ($phone_no)) {
   
$phone_no trim($phone_no);
   if (
$PHONE_NO$phone_no trim($PHONE_NO);
   if (!
ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)"$phone_no))
      
print_error("your <b>phone number</b> is invalid");
}

// check phone for validity
if (($FAX_NO) || ($fax_no)) {
   
$fax_no trim($fax_no);
   if (
$FAX_NO$fax_no trim($FAX_NO);
   if (!
ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)"$fax_no))
      
print_error("your <b>fax number</b> is invalid");
}

// sort alphabetic or prepare an order
if ($sort == "alphabetic") {
   
uksort($HTTP_POST_VARS"strnatcasecmp");
} elseif ((
ereg('^order:.*,.*'$sort)) && ($list explode(','ereg_replace('^order:'''$sort)))) {
   
$sort $list;
}
   
// prepare the content
$content parse_form($HTTP_POST_VARS$sort);

// check for an attachment if there is a file upload it
if ($attachment_name) {
   if (
$attachment_size 0) {
      if (!
$attachment_type$attachment_type =  "application/unknown";
      
$content .= "Attached File: ".$attachment_name."\n";
      
$fp fopen($attachment,  "r");
      
$attachment_chunk fread($fpfilesize($attachment));
      
$attachment_chunk base64_encode($attachment_chunk);
      
$attachment_chunk chunk_split($attachment_chunk);
   }
}

// check for a file if there is a file upload it
if ($file_name) {
   if (
$file_size 0) {
      if (!
ereg("/$"$path_to_file))
         
$path_to_file $path_to_file."/";
      
$location $path_to_file.$file_name;
      if (
file_exists($path_to_file.$file_name))
         
$location $path_to_file.rand(1000,3000).".".$file_name;
      
copy($file,$location);
      
unlink($file);
      
$content .= "Uploaded File: ".$location."\n";
   }
}

// second file (see manual for instructions on how to add more.)
if ($file2_name) {
   if (
$file_size 0) {
      if (!
ereg("/$"$path_to_file))
         
$path_to_file $path_to_file."/";
      
$location $path_to_file.$file2_name;
      if (
file_exists($path_to_file.$file2_name))
         
$location $path_to_file.rand(1000,3000).".".$file2_name;
      
copy($file2,$location);
      
unlink($file2);
      
$content .= "Uploaded File: ".$location."\n";
   }
}

// if the env_report option is on: get eviromental variables
if ($env_report) {
   
$env_report ereg_replace" +"""$env_report);
   
$env_reports split(",",$env_report);
   
$content .= "\n------ eviromental variables ------\n";
   for (
$i=0;$i<count($env_reports);$i++) {
      
$string trim($env_reports[$i]);
      if (
$env_reports[$i] == "REMOTE_HOST")
         
$content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
      if (
$env_reports[$i] == "REMOTE_USER")
         
$content .= "REMOTE USER: "$REMOTE_USER."\n";
      if (
$env_reports[$i] == "REMOTE_ADDR")
         
$content .= "REMOTE ADDR: "$REMOTE_ADDR."\n";
      if (
$env_reports[$i] == "HTTP_USER_AGENT")
         
$content .= "BROWSER: "$HTTP_USER_AGENT."\n";
   }
}

// send it off
mail_it(stripslashes($content), ($subject)?stripslashes($subject):"Form Submission"$email$recipient);
if (
file_exists($ar_file)) {
   
$fd fopen($ar_file"rb");
   
$ar_message fread($fdfilesize($ar_file));
   
fclose($fd);
   
mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Form Submission", ($ar_from)?$ar_from:$recipient$email);
}

// if the redirect option is set: redirect them
if ($redirect) {
   
header("Location: $redirect");
   exit;
} else {
   echo 
"Thank you for your submission\n";
   echo 
"<br><br>\n";
  
   exit;
}

// <----------    THE END    ----------> //

Let me know if you need any other mod's done
__________________
Ryan S Fitzpatrick
Reply With Quote
  #17  
Old 03-21-2007, 11:34 PM
StBalor StBalor is offline
LawnSite Senior Member
 
Join Date: Mar 2006
Location: Millersville, Maryland
Posts: 801
Freshfitz, i did as you said. but when i press submit i get did not add phone# error. So i looked at the codes a little bit and noticed you named the last block phone number also. It should have been other services. I changed that block and changed the lawn package block to a drop down menu.
I also noticed on the formail.php you were verifying the phone# twice, i am assuming once for the block that you had the wrong name on. I deleted the second entry on the phone# verify. But i still get the error.
__________________
why i like cutting lawns so much:

It's the only job i know,
Where i can walk in circles and talk to myself
And no one thinks i'm crazy.
Reply With Quote
  #18  
Old 03-22-2007, 01:46 AM
StBalor StBalor is offline
LawnSite Senior Member
 
Join Date: Mar 2006
Location: Millersville, Maryland
Posts: 801
Freshfitz, i tinkered with it some more and got it to work. I had to remove Phone_no required for it to work. However there is a few minor details i would like to address. If you could, i would like for you to tell me or show me how.
1. the phone_no required. i would like for this to work.
2. Redirect, i would like it to redirect to this page. confirm.html
3. Where it says other service:, I also would like it to say "use as much detail as possible. But staying within the way the form is set up.. (stay aligned)

Seems pretty simple but i did not want to mess anything up. If i am being to much trouble, i understand, no problem.
__________________
why i like cutting lawns so much:

It's the only job i know,
Where i can walk in circles and talk to myself
And no one thinks i'm crazy.
Reply With Quote
  #19  
Old 03-22-2007, 11:07 AM
Dirty Water's Avatar
Dirty Water Dirty Water is offline
LawnSite Fanatic
 
Join Date: May 2005
Location: Redmond, WA
Posts: 6,802
StBalor. I gave you a few pointers and even created a script that would have worked for you if you had the know how to use it., and FreshFitz did some googling and found a premade form php for you, but there comes a point where you have to thank people for help before asking for more.

Some people charge a lot of money for this kind of stuff.
Reply With Quote
  #20  
Old 03-22-2007, 12:10 PM
StBalor StBalor is offline
LawnSite Senior Member
 
Join Date: Mar 2006
Location: Millersville, Maryland
Posts: 801
Quote:
Originally Posted by Dirty Water View Post
StBalor. I gave you a few pointers and even created a script that would have worked for you if you had the know how to use it., and FreshFitz did some googling and found a premade form php for you, but there comes a point where you have to thank people for help before asking for more.

Some people charge a lot of money for this kind of stuff.
No problem Dirty Water. I had already told you i did not have the know how to do this and needed instructions on how to get it to work.
But i do appreciate the help you both have given.
__________________
why i like cutting lawns so much:

It's the only job i know,
Where i can walk in circles and talk to myself
And no one thinks i'm crazy.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump





Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2012, LawnSite.comô - Moose River Media
All times are GMT -4. The time now is 01:52 AM.

Page generated in 0.15490 seconds with 7 queries