PHP Help

  • handyoze
  • Born
  • Born
  • handyoze
  • Posts: 1

Post 3+ Months Ago

Hello,

Can any one help me to add the following scripts to the below scripts?

enable the IP address
validate the email address
require the fields in the form so they cannot send a blank form
Show date and time submitted
CAPTCHA

Thank you for your help!

PHP Code: [ Select ]
<?php
 
error_reporting(E_ALL ^ E_NOTICE);
 
$my_email = "";
 
$from_email = "";
 
$continue = "/";
 
$errors = array();
 
// Remove $_COOKIE elements from $_REQUEST.
 
if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}
 
// Validate email field.
 
if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
{
 
$_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 = "FEEDback";
 
$subject = stripslashes($subject);
 
if($from_email)
{
 
$headers = "From: " . $from_email;
$headers .= PHP_EOL;
$headers .= "Reply-To: " . $_REQUEST['email'];
 
}
else
{
 
$from_name = "";
 
if(isset($_REQUEST['name']) && !empty($_REQUEST['name'])){$from_name = stripslashes($_REQUEST['name']);}
 
$headers = "From: {$from_name} <{$_REQUEST['email']}>";
 
}
 
mail($my_email,$subject,$message,$headers);
 
?>
  1. <?php
  2.  
  3. error_reporting(E_ALL ^ E_NOTICE);
  4.  
  5. $my_email = "";
  6.  
  7. $from_email = "";
  8.  
  9. $continue = "/";
  10.  
  11. $errors = array();
  12.  
  13. // Remove $_COOKIE elements from $_REQUEST.
  14.  
  15. if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}
  16.  
  17. // Validate email field.
  18.  
  19. if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
  20. {
  21.  
  22. $_REQUEST['email'] = trim($_REQUEST['email']);
  23.  
  24. 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;}}}}}}
  25.  
  26. }
  27.  
  28. // Check referrer is from same site.
  29.  
  30. 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";}
  31.  
  32. // Check for a blank form.
  33.  
  34. function recursive_array_check_blank($element_value)
  35. {
  36.  
  37. global $set;
  38.  
  39. if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}
  40. else
  41. {
  42.  
  43. foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}
  44.  
  45. }
  46.  
  47. }
  48.  
  49. recursive_array_check_blank($_REQUEST);
  50.  
  51. if(!$set){$errors[] = "You cannot send a blank form";}
  52.  
  53. unset($set);
  54.  
  55. // Display any errors and exit if errors exist.
  56.  
  57. if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}
  58.  
  59. if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}
  60.  
  61. // Build message.
  62.  
  63. 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,", ");}
  64.  
  65. $message = build_message($_REQUEST);
  66.  
  67. $message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL."";
  68.  
  69. $message = stripslashes($message);
  70.  
  71. $subject = "FEEDback";
  72.  
  73. $subject = stripslashes($subject);
  74.  
  75. if($from_email)
  76. {
  77.  
  78. $headers = "From: " . $from_email;
  79. $headers .= PHP_EOL;
  80. $headers .= "Reply-To: " . $_REQUEST['email'];
  81.  
  82. }
  83. else
  84. {
  85.  
  86. $from_name = "";
  87.  
  88. if(isset($_REQUEST['name']) && !empty($_REQUEST['name'])){$from_name = stripslashes($_REQUEST['name']);}
  89.  
  90. $headers = "From: {$from_name} <{$_REQUEST['email']}>";
  91.  
  92. }
  93.  
  94. mail($my_email,$subject,$message,$headers);
  95.  
  96. ?>
  • Anonymous
  • Bot
  • No Avatar
  • Posts: ?
  • Loc: Ozzuland
  • Status: Online

Post 3+ Months Ago

  • ingot
  • Born
  • Born
  • ingot
  • Posts: 4

Post 3+ Months Ago

Ok well you validate an email address using the following function:

Code: [ Select ]
function isValidEmail($email) {
    return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
}
  1. function isValidEmail($email) {
  2.     return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
  3. }

(Returns boolean e.g true/false)

Good luck with the rest :)
  • PolishHurricane
  • Mastermind
  • Mastermind
  • User avatar
  • Posts: 1585

Post 3+ Months Ago

The POSIX Regex "ereg" functions have been deprecated (officially as of PHP version 5.3.0), you should use preg_match with the "i" flag. Example:

PHP Code: [ Select ]
<?php
function isValidEmail($email) {
return preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$#i", $email);
}
?>
  1. <?php
  2. function isValidEmail($email) {
  3. return preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$#i", $email);
  4. }
  5. ?>


If you don't know much about CAPTCHA I recommend using: http://recaptcha.net/

You can easily get someones IP with $_SERVER['REMOTE_ADDR'], I wouldn't rely on the IP layer though, so escape it.

Date & Time are easily aquired via the php Date/Time Functions.

I have a feeling your chances of someone re-writing your script for free are slim. Attempt to do it on your own and if you have more specific problems I'm sure someone will help you.

Post Information

  • Total Posts in this topic: 3 posts
  • Users browsing this forum: No registered users and 152 guests
  • You cannot post new topics in this forum
  • You cannot reply to topics in this forum
  • You cannot edit your posts in this forum
  • You cannot delete your posts in this forum
  • You cannot post attachments in this forum
 
 

© 1998-2014. Ozzu® is a registered trademark of Unmelted, LLC.