Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
I need some php scripting help for a web form
Old 10-24-2009, 12:18 PM I need some php scripting help for a web form
Junior Talker

Posts: 3
Name: Robert Jones
Trades: 0
I have a php script on my website to handle a form on a webpage, but I'm a bit clueless when it comes to php scripting. I have entered my email address in the php script (this address is what the form will be sent to). When I trial the form and submit, it says successfully sent but I don't recieve any emails. I understand that the web space host needs to be able to accept php to do this, which it is. I'm not sure how a host is able to handle a request to send an email though. My web host uses cPanel.

My script is as follows:

PHP Code:
<?php
 
$my_email 
"MY EMAIL ADDRESS IS PLACED HERE";
 
$continue "MY WEB ADDRESS HERE";
 
$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'],"@") != || 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_v alue)){$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_o utput)){$message_output ="";}if(!is_array($request_input)){$message_out put $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{$mes sage_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");}
 
$message build_message($_REQUEST);
 
$message $message PHP_EOL.PHP_EOL."-- ".PHP_EOL."";
 
$message stripslashes($message);
 
$subject "FormToEmail Comments";
 
$headers "From: " $_REQUEST['email'];
 
mail($my_email,$subject,$message,$headers);
 
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
<html>
 
<head>
<title>Thank You - Your Message Has Been Sent</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>
<br>Your message has been sent
<p><a href="<?php print $continue?>">Click here to continue</a></p>
</center>
</div>
 
</body>
</html>

Last edited by chrishirst; 10-24-2009 at 01:32 PM..
robejn713 is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Old 10-24-2009, 01:27 PM Re: I need some php scripting help for a web form
lizciz's Avatar
Webmaster Talker

Posts: 744
Name: Mattias Nordahl
Location: Sweden
Trades: 0
First, double check that you have entered the correct e-mail address. Also, check the inbox of the e-mail accounts that your host provides (with cPanel for example) to see if there are any messages of that the host's mail server was not able to deliver your e-mail.
__________________
34343639363436653237373432303635373837303635363337 34323037343638363137343263323036343639363432303739 366637353366
lizciz is offline
Reply With Quote
View Public Profile Visit lizciz's homepage!
 
Old 10-24-2009, 01:33 PM Re: I need some php scripting help for a web form
Junior Talker

Posts: 3
Name: Robert Jones
Trades: 0
Thanks for reply. I have made sure my email address is correct and I have checked my email accounts within cPanel and there are no messages.
robejn713 is offline
Reply With Quote
View Public Profile
 
Old 10-24-2009, 09:39 PM Re: I need some php scripting help for a web form
lizciz's Avatar
Webmaster Talker

Posts: 744
Name: Mattias Nordahl
Location: Sweden
Trades: 0
That was alot of messy and hard-to-read code, especially when you're tired, so i'm not evan going to try right now :P
But you could try to change this line
PHP Code:
mail($my_email,$subject,$message,$headers); 
into this

PHP Code:
if (!mail($my_email,$subject,$message,$headers)) {
   die(
"Something went wrong!");

</span></span>
__________________
34343639363436653237373432303635373837303635363337 34323037343638363137343263323036343639363432303739 366637353366
lizciz is offline
Reply With Quote
View Public Profile Visit lizciz's homepage!
 
Old 10-25-2009, 05:50 PM Re: I need some php scripting help for a web form
Junior Talker

Posts: 3
Name: Robert Jones
Trades: 0
Thanks for helping but after hours of looking into it. Finally sorted it out I deleted the following attribute:


HTML Code:
$headers = "From: " . $_REQUEST['email'];
It works fine now!
robejn713 is offline
Reply With Quote
View Public Profile
 
Reply     « Reply to I need some php scripting help for a web form
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

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
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.29631 seconds with 12 queries