Jump to content

Validation Form


aleister1987

Recommended Posts

Hi

 

I am currently writing code to validate a form using PHP. What i wanted was to validate all inputs and then post the data to a external mysql server.

 

However, i want a function placed on the submit/send button of the form, in which the function checks to see if there are no errors and then forwards the user to another page where the data is inserted into the sql database.

 

Here is what i have so far:

 

add_test.php

 

<?php
include("validation.php");
?>

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test</title>
<link rel="stylesheet" href="test.css" type="text/css" media="screen" />
</head>
<body>

<div id="container">

	<h1>Add a Product</h1>

				<?php if(isset($_POST['send']) AND (!validateModel($_POST['model']) || !validatePrice($_POST['price']) || !validateProduct($_POST['product']) || !validateImage($_FILES['photo']) || !validateDescription($_POST['description']) ) ):?>
					<div id="error">
				<ol>
				<center><p><b>Oops, Please fix these errors:</b></p></center><br />
					<?php if(!validateModel($_POST['model'])):?>
						<li><strong>Invalid Model:</strong> Model Number must be more than 3 letters!</li>
					<?php endif?>
					<?php if(!validatePrice($_POST['price'])):?>
						<li><strong>Invalid Price:</strong> Price must be in integers!</li>
					<?php endif?>
					<?php if(!validateProduct($_POST['product'])):?>
						<li><strong>Invalid Product:</strong> You didn't select a product!</li>
					<?php endif?>
					<?php if(!validateImage($_FILES['photo'])):?>
						<li><strong>Invalid Image:</strong> You didn't select an image! - (ONLY: GIF/JPEG/JPG/PNG)</li>
					<?php endif?>
					<?php if(!validateDescription($_POST['description'])):?>
						<li><strong>Invalid Description:</strong> Description must have at least 10 characters in length!</li>
					<?php endif?>
				</ol>
			</div>

	<?elseif(isset($_POST['send'])):?>

			<div id="error" class="valid">

				<ul>
					<li><strong>Congratulations!</strong> All fields are OK </li>
				</ul>

			</div>

	<?endif?> 

	<form method="post" id="customForm" action="" enctype="multipart/form-data">
		<div>
			<label for="model">Model Number</label>
			<input id="model" name="model" type="text" />
			<span id="modelInfo">Please enter your Product Model Number!</span>
		</div>

		<div>
			<label for="product">Product</label>

				<select class="product" name="product">
					<option value="please_select">Please select an option below</option>
					<option value="1">19" LCD TV</option>
					<option value="2">22" LCD TV</option>
					<option value="3">26" LCD TV</option>
					<option value="4">32" LCD TV</option>
					<option value="5">37" LCD TV</option>
					<option value="6">42" LCD TV</option>
					<option value="7">37" Plasma TV</option>
					<option value="8">42" Plasma TV</option>
					<option value="9">46" Plasma TV</option>
					<option value="10">50" Plasma TV</option>
					<option value="11">54" Plasma TV</option>
					<option value="12">58" Plasma TV</option>
					<option value="13">Wall Bracket</option>
					<option value="14">Home Cinema System</option>
					<option value="15">Bluray Home Cinema System</option>
					<option value="16">DVD Recorder</option>
					<option value="17">DVD Player</option>
					<option value="18">DVD Portable</option>

					<option value="">Bluray Recorder</option>
					<option value="">Bluray Player</option>
					<option value="">Bluray Portable</option>
					<option value="">Projector</option>
					<option value="">37" LCD TV</option>
					<option value="">42" LCD TV</option>
					<option value="">Personal Video Recorder (PVR)</option>
					<option value="">3D Technology</option>
					<option value="">Upright Cleaner</option>
					<option value="">Cylinder Cleaner</option>
					<option value="">DECT Phone</option>
					<option value="">DECT Answer Phone</option>
					<option value="">Washing Machines</option>
					<option value="">Tumble Dryers</option>
					<option value="">Dishwashers</option>
					<option value="">Fridge-Freezers</option>
					<option value="">Freezers</option>
					<option value="">Refridgerators</option>

					<option value="">Microwave (Solo)</option>
					<option value="">Microwave (Grill)</option>
					<option value="">Microwave Combination</option>
					<option value="">Kettles</option>
					<option value="">Toasters</option>
					<option value="">Irons</option>
					<option value="">Breadmakers</option>
					<option value="">Microsystems</option>
					<option value="">Minisystems</option>
					<option value="">CD, Radio and Cassette Players</option>
					<option value="">Pure Radios</option>
					<option value="">Dimplex Fires</option>
					<option value="">Convector Heaters</option>
					<option value="">Fan Heaters</option>
					<option value="">Mens Shavers/Grooming</option>
					<option value="">Ladies Shavers/Beauty</option>
					<option value="">Straighteners</option>
					<option value="">Epilators</option>

					<option value="">Stylish Cameras</option>
					<option value="">Super Zoom Cameras</option>
					<option value="">SD Camcorders</option>
					<option value="">HD Camcorders</option>
					<option value="">HDD Camcorders</option>
					<option value="">Bluray Discs</option>
					<option value="">DVD Discs</option>
					<option value="">Leads</option>
					<option value="">Mini DV Tapes</option>
					<option value="">SD/SDHC/SDXC Cards</option>
				</select>

			<span id="productInfo">Please choose a Product Title!</span>
		</div>

		<div>
			<label for="price">Price</label>
			<input id="price" name="price" type="text" />
			<span id="priceInfo">Please enter a Price!</span>
		</div>

		<div>
			<label for="photo">Image</label>
			<input style="font-size:13px;" class="file" name="photo" type="file" />
			<span id="imageInfo">Please choose an Image!</span>
		</div>

		<div>
			<label for="message">Description</label>
			<textarea id="description" name="description" cols="" rows=""></textarea>
		</div>

		<div>
			<input id="send" name="send" type="submit" value="Send" />
		</div>

	</form>
</div>
</body>
</html>

 

 

Here is my validation php document

 

validation.php

 

<?php
function validateModel($model){
	//if it's NOT valid
	if(strlen($model) < 4)
		return false;
	//if it's valid
	else
		return true;
}

function validatePrice($price){
	//if it's NOT valid
	if(is_numeric($price) == '')
		return false;
	//if it's valid
	else
		return true;
}


function validateProduct($product){
	//if it's NOT valid
	if(($product)=='please_select')
		return false;
	//if it's valid
	else 
		return true;
}


function validateImage($photo){
	//if it's valid
	if ((($_FILES["photo"]["type"] == "image/gif")
	|| ($_FILES["photo"]["type"] == "image/jpeg")
	|| ($_FILES["photo"]["type"] == "image/pjpeg"))
	&& ($_FILES["photo"]["size"] < 2000000))
	return true;

	else 
		return false;
}


function validateDescription($description){
	//if it's NOT valid
	if(strlen($description) < 10)
		return false;
	//if it's valid
	else 
		return true;
}

?>

 

 

any suggestions on how to write the code for the send button? Im abit stuck and being a newbie dont help lol.

Link to comment
Share on other sites

Why don't you set an error (variable say "integer of ONE") and then write validation code (If statements with boolean conditions) to check for required data per field and if either empty or invalid - i.e. missing email or name, phone #, etc.. - the function returns the error variable along with the fied input.

 

Then you add If statements to each field, within the form, and say, "if $error = 1 && (variable "blah blah blah"), echo <message to fix field data>.

 

Lastly, you go back to the function and at the end, if $error != 1, then you finish with print or echo statement to display submit button.

 

Hope this helps!

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.