Skip to content
View in the app

A better way to browse. Learn more.

Web Designer Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Problem....Help Rqd

Featured Replies

Hiya,

 

Im still quote new to PHP - Ive created a form, and I need to stop it being allowed to send with empty fields. At the moment people can just fill in anything or nothing and click submit. Any ideas how I would do this? So far Ive got:

 

<?php

 

$my_email = "jobepage@googlemail.com";

 

/*

 

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 = "Registration";

 

$headers = "From: webmaster@gsa.co.uk";

 

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

 

?>

 

Thanks for any help.

 

Gem

Just create an array like this

 

 

$errors[] = array();

 

and then check fields like this

 

 

if(!$name){
$errors[] = "Please enter a name!!!";
}

if(!$email){
$errors[] = "Please enter your email!!!";
}

if(count($errors) > 0){
foreach($errors AS $error){

echo "$error<br />";

}

}else{
//DO stuff if errors are not flaged

}

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.