43
© Copyright 2012 Hidaya Trust (Pakistan) A Non-Profit Organization www.hidayatrust.org / www,histpk.org Hidaya Institute of Science & Technology www.histpk.org A Division of Hidaya Trust, Pakistan

FORM VALIDATION Faheem Ahmed Khokhar

  • Upload
    iria

  • View
    46

  • Download
    1

Embed Size (px)

DESCRIPTION

FORM VALIDATION Faheem Ahmed Khokhar. Topics To be Covered. Introducing Server side Validation Checking Empty fields Checking field lengths Checking Ranges Checking formats (with Regular Expressions). Validation?. The act of validating; finding or testing the truth of something. Or - PowerPoint PPT Presentation

Citation preview

Page 1: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Hidaya Institute of Science &

Technologywww.histpk.org

A Division of Hidaya Trust, Pakistan

Page 2: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

FORM VALIDATION

Faheem Ahmed Khokhar

Page 3: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Topics To be Covered

Introducing Server side Validation

Checking Empty fields

Checking field lengths

Checking Ranges

Checking formats (with Regular Expressions)

Page 4: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Validation? The act of validating; finding or testing the truth of something.

Or

The act of declaring or making legally valid

Or

Validation is the process of checking if something satisfies a certain standard/ criteria.

Page 5: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

FORM VALIDATION

• Form validation is the process of checking that a form has been filled in correctly before it is processed.

• For example, if your form has a box for the user to type their email address, you might want your form handler to check that they've filled in their address before you deal with the rest of the form

• There are two main methods for validating forms: server-side (using Common Gateway Interface (CGI) scripts, ASP, etc), and client-side (usually done using JavaScript). Server-side validation is more secure but often more tricky to code, whereas client-side (JavaScript) validation is easier to do and quicker too (the browser doesn't have to connect to the server to validate the form, so the user finds out instantly if they've missed out that required field!).

Page 6: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Introduction to Server-side validation

• Server-side data validation means using PHP to verify that valid information has been

sent to the script. Using server-side validation has pretty much the exact opposite

pros and cons of client-side development: it is more secure and works seamlessly

with all browsers, but it does so at the cost of slightly higher server load and slower

feedback for users.

Page 7: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

CHECKING EMPTY FIELDS

Users are irritating.

They don't like filling out forms, and will tear through them as fast as they possibly can to get to the fun part of your site.

Since they are typing so fast, they probably won't read the directions and sometimes they leave the fields blank and submit the forms.

To avoid inserting blank fields in the data base, we bind them to fill all the required fields

Page 8: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

CHECKING EMPTY FIELDS

Example:<?php

$var="";

if(empty($var))

{

echo "The variable is empty";

}

else

{

echo "The variable is having some value";

}

?>

Page 9: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

AssignmentEnter Name

Enter Last Name

Enter CNIC number without using (-)

signs

Please fill the field

Page 10: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Output

Page 11: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Regular expression types There are 2 types of regular expressions:

POSIX (Portable Operating System Interface for uniX)

Extended

Perl Compatible

The ereg, eregi, ... are the POSIX versions.

The preg_match, preg_replace, ... are the Perl version.

It is important that using Perl compatible regular expressions the expression should be enclosed in the delimiters, a forward slash (/). However this version is more powerful and faster as well than the POSIX one.

Page 12: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Precautions

• We will be using PCRE.

• When using the PCRE functions, it is required that the pattern is enclosed by delimiters.

• A delimiter can be any non-alphanumeric, non-backslash, non-whitespace character.

• Often used delimiters are forward slashes (/), hash/number signs (#) and tildes (~).

• The pattern should be written inside double quotation(“ “)

Page 13: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Regular expressions syntax[abc] a, b, or c

[a-z] Any lowercase letter

[^A-Z] Any character that is not a uppercase letter

[a-z]+ One or more lowercase letters

[0-9.-] Any number, dot, or minus sign

^[a-zA-Z0-9_]{1,}$ Any word of at least one letter, number or _

[^A-Za-z0-9] Any symbol (not a number or a letter)

([A-Z]{3}|[0-9]{4}) Matches three letters or four numbers

Page 14: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Pattern Switches

• use switches to make the match global or case- insensitive or both: Switches are added to the very end of a regular expression.

Property Description Example

i Ignore the case of character /The/i matches "the" and "The" and "tHe"

Page 15: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

PHP Preg_match() Function

This function matches the value given by the user and defined in the regular expression.

If the regular expression and the value given by the user, becomes equal, the function will return true, false otherwise.

Syntax:

Preg_match(Pattern, Subject, regs)

Pattern – Pattern is used to search the string.

Subject – input given by the user.

• regs• If matches are found for parenthesized substrings of pattern and the function is

called with the third argument regs, the matches will be stored in the elements of the array regs.

Page 16: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Literal Characters match themselves.

The Carrot/Circumflex Sign ^ Means string must start with.

• preg_match(“/^hidaya/”,”hidaya trust”)

The Dollar $ sign

Means string must end with. • preg_match(“/hidaya$/”,”hidaya trust”)

The Period . sign

Means match any charcter. • preg_match(“/^de.r/”,”dear”)

Page 17: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

preg_match() continued… EXAMPLE

<?php

$pattern= "/trust$/";

$string = "hidaya trust";

echo preg_match($pattern,$string);

?>

Page 18: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

preg_match() continuedExample 2

<?php

$date="2012-2-3";

$regs="-";

if (preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $date, $regs)) {

echo "$regs[3].$regs[2].$regs[1]";} else { echo "Invalid date format: $date";}

?>

Page 19: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Pattern matchingExample 1:• <?php• $pattern="/^[A-Za-z ]{1,}$/";• $subject="Hidaya Trust";• if(preg_match($pattern,$subject))• {• echo "Pattern Matched"; • }• else• {• echo "Pattern Mismatched";• }• ?>

Page 20: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Description• In Example 1, the following are valid and acceptable by the pattern/validation

process.

• ^ carrot sign shows that the string must start with small or capital alpha numeric characters and space can be added in the pattern matching.

• / slashes are for start and end of pattern.

• $ sign will check the pattern

Page 21: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

• Example 2:• <?php• $pattern="/^[A-Z ]{1,}$/i";• $subject="hidayatrust";• if(preg_match($pattern,$subject))• {• echo "Pattern Matched"; • }• else• {• echo "Pattern Mismatched";• }• ?>

Page 22: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

DescriptionIn Example 2

• The case of characters will be ignored by the pattern

• It will match only the required pattern

Page 23: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

• Example 3:• <?php• $pattern="/^[A-Z ]{1,}\.$/i";• $subject="hidaya trust.";• if(preg_match($pattern,$subject))• {• echo "Pattern Matched"; • }• else• {• echo "Pattern Mismatched";• }• ?>

Page 24: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

DescriptionIn Example 3

• The case of characters will be ignored by the pattern

• It will match only the required pattern

• The dot(.) is compulsory in the end of the string

Page 25: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

PHP ereg( ) Function

• Searches a string for matches to the regular expression given in pattern in a case-sensitive way.

• Syntax• ereg ( string $pattern , string $string [, array &$regs ] )

• pattern :• Case sensitive regular expression.• string• The input string. • regs• If matches are found for parenthesized substrings of pattern and the function is

called with the third argument regs, the matches will be stored in the elements of the array regs.

Page 26: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

ereg() continued..

• <?php

• $date="2012-3-22";

• $regs="-";

• if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {

• echo "$regs[3].$regs[2].$regs[1]";• }• else• {• echo "Invalid date format: $date";• }• ?>

Page 27: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

preg_replace() This function performs the search and replaces the string.

It works like str_replace()

Syntax

preg_replace(Pattern, Replacement, String/Array)

Pattern : It is used to search for. It can be either a string or an array with string.

Replacement : The string or an array with string to replace. If this parameter is a string and the pattern parameter is an array, all pattern will be replace by that string. If both pattern and replacement parameters are arrays, each pattern will be replaced by the replacement counterpart. If there are fewer elements in the replacement array than in the pattern array, any extra pattern will be replaced by an empty string.

String/Array – input given by the user

Page 28: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

PHP preg_replace() Function

EXAMPLE

<?php

$pattern= "/trust$/";

$replacement = "foundation";

$string = "hidaya trust";

echo preg_replace($pattern,$replacement,$string);

?>

Page 29: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

preg_replace()

$pattern="/^[a-z ]+$/";

$string="faheem ahmed";

$a=preg_match($pattern,$string);

if($a){

$replacement="Ali";$patt="/ahmed/";echo preg_replace($patt,$replacement,$string);

}

Page 30: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

CHECKING FIELD LENGTH

To restrict the users to fill the forms within the boundary of the requirements

To implement server-side validation, we write a PHP script that handles the validation and then process the data accordingly.

The user will be bound to enter data within the limit.

You are very familiar to string functions, they are utilized in the validation section

Page 31: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

CHECKING FIELD LENGTHExample:

$text="Fah123";

$pattern="/^[0-9a-zA-Z]{6}$/";

echo preg_match($pattern,$text);Or

$text="123456";

$pattern="/^[0-9]{6}$/";

echo preg_match($pattern,$text);

Page 32: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

CHECKING FIELD RANGES

Checking the field ranges is one of the important part of the validation.

The user has to insert the data in between the range of the defined length.

Page 33: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

CHECKING FIELD RANGES

Example:

<?php

$text="123456789012";

$pattern="/^[0-9]{6,12}$/";

echo preg_match($pattern,$text);

?>

Page 34: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Assignment 2

Page 35: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Out put

Message should be displayed, if pattern

does not match criteria

Page 36: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Out Put

Page 37: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Validate Form with Built-in Fuctions

Page 38: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

PHP filter_var() Function

The filter_var() function filters a variable with the specified filter.Returns the filtered data on success or FALSE on failure.

Syntaxfilter_var(variable, filter, options)

Parameter Description

variable Required. Specifies the variable to filter

filter Optional. Specifies the ID of the filter to use. Default is FILTER_SANITIZE_STRING. 

options Optional. Specifies an associative array of flags/options or a single flag/option. Check each filter for possible options and flags

Page 39: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

The filters to be used in validation are

1. Number (Integer) Validation

2. Number (Integer) validation with range

3. String Validation with Regular Expression

4. Email Validation

Page 40: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Number (Integer) Validation

<?php$integer="6234";

if(filter_var($integer,FILTER_VALIDATE_INT)){

echo "Integer Number";}else{

echo "Not Integer";}

?>

Page 41: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Number (Integer) Validation with range

<?php$integer="6234";

if(filter_var($integer,FILTER_VALIDATE_INT, array("options"=>array("min_range"=>1,"max_range"=>5000))))

{echo "Integer Number";

}else{

echo "Not Integer";}

?>

Page 42: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

String Validation with Regular Expression

<?php

$regExp="/^[a-zA-Z ]{1,}$/";

if((filter_var($string,FILTER_VALIDATE_REGEXP,array("options"=>array("regexp"=>$regExp)))))

{echo "Expression Matched";

}else{

echo "Expression Not Matched";}?>

Page 43: FORM VALIDATION Faheem Ahmed Khokhar

© Copyright 2012 Hidaya Trust (Pakistan) ● A Non-Profit Organization ● www.hidayatrust.org / www,histpk.org

Email Validation

<?php

$email="[email protected]";

if(filter_var($email,FILTER_VALIDATE_EMAIL)){

echo "Valid Email";}else{

echo "invalid Email";}

?>