Lecture 22
Validating user input
Mr. Mubashir Ali
Lecturer (Dept. of Computer Science)
[email protected] 1
Summary of the previous lecture
• Super Global variables
• Passing form data
• Passing data with sessions
Mubashir Ali - Lecturer (Department of
2
Computer Science).
Outline
• Regular expressions in PHP
• Validating user input at server
• String functions
Mubashir Ali - Lecturer (Department of
3
Computer Science).
1. Regular expressions in PHP
• A regular expression is a concise notation to
describe patterns in strings
• Regular expressions provide the foundation
for describing or matching data according to
defined syntax rules
– Example: |^[0-9]{2}-[0-9]{2}-[0-9]{4}$|
Mubashir Ali - Lecturer (Department of
4
Computer Science).
1. Regular expressions in PHP…
Sub pattern with fixed character
Start and end of RE
|^[0-9]{2}-[0-9]{2}-[0-9]{4}$|
Sub pattern Sub pattern Sub pattern
Start matching
Match the end of
from the start [0-9] {2} the string
Allowed length
characters
Mubashir Ali - Lecturer (Department of
5
Computer Science).
1. Regular expressions in PHP…
• Start and end of the RE:
– optional, ||
• Sub-patterns:
– range of allowed characters
– Allowed length
• Sub-patterns with fixed character:
Mubashir Ali - Lecturer (Department of
6
Computer Science).
1. Regular expressions in PHP…
• Matching from the start:
– 1212-12-2014
Pattern exists if do not
match from start
• Matching till end:
– 12-12-2014123
Pattern exists if do
not match till end
• For exact match we should use both ^ and $
Mubashir Ali - Lecturer (Department of
7
Computer Science).
1.1 Notations for RE
• ^: match strings that start with the given pattern
• $: match strings that end with the given pattern
• -: means a range of characters
• [ ]: makes a class of characters
• [^ ]: negates the class of character
Mubashir Ali - Lecturer (Department of
8
Computer Science).
1.1 Notation for RE…
• Quantifiers:
• {n}: matches a character, class or sub-
pattern for n times
• { n, m}: matches a character, class or sub-
pattern for minimum n times and
maximum m times
Mubashir Ali - Lecturer (Department of
9
Computer Science).
1.1 Notation for RE…
• ?: matches the character, class or sub-
pattern 0 or 1 time
– equal to {0,1}
• +: matches the character, class or sub-
pattern 1 or more times
– equals to {1, }
• *: matches the character, class or sub-
pattern 0 or any number of time
– equals {0, }
Mubashir Ali - Lecturer (Department of
10
Computer Science).
1.1 Notation for RE…
Predefined character ranges:
• \d: means exactly as [0-9]
• \D: means exactly as [^0-9]
• \w: means exactly as [a-zA-Z0-9]
Mubashir Ali - Lecturer (Department of
11
Computer Science).
1.1 Notation for RE…
RE examples:
• Validating date:
–|^\d{2}-\d{2}-\d{4}$|
• Validating CNIC:
–|^\d{5}-\d{7}-\d{1}$|
• Validating Email:
–|^[a-zA-Z0-9_.]+@[a-z]{3,5}.[a-z]{2,3}$|
Mubashir Ali - Lecturer (Department of
12
Computer Science).
1.1 Notation for RE…
• Validating name:
–|^[a-zA-Z ]{5,25}$|
• Validating Password:
–must contain ‘@’
–|@|
Mubashir Ali - Lecturer (Department of
13
Computer Science).
2. Validating user’s input
• preg_match():
– searches a string for a specific pattern
– returns TRUE if it exists and FALSE otherwise
– preg_match(“pattern”,$string);
Mubashir Ali - Lecturer (Department of
14
Computer Science).
2. Validating user’s input
Post, action.php
name
email
cnic
dob
Mubashir Ali - Lecturer (Department of
15
Computer Science).
2. Validating user’s input
Receiving values
Validating
name
Mubashir Ali - Lecturer (Department of
16
Computer Science).
2. Validating user’s input
email
CNIC
DoB
Mubashir Ali - Lecturer (Department of
17
Computer Science).
3. String functions in PHP
• strlen():
– Returns the length of the string
– strlen($string);
• strcmp():
– Compares two strings
– Returns 0 if strings are equal, 1 if first string is greater
and -1 if second is greater
– strcmp($string1,$string2);
• Strcasecmp():
– Compares two strings in case insensitive manner
– strcasecmp($string1,$string2);
Mubashir Ali - Lecturer (Department of
18
Computer Science).
3. String functions in PHP…
Method=post
name
pass
pass1
Mubashir Ali - Lecturer (Department of
19
Computer Science).
3. String functions in PHP…
Getting variables
Using strlen()
Mubashir Ali - Lecturer (Department of
20
Computer Science).
3. String functions in PHP…
Password is short
Mubashir Ali - Lecturer (Department of
21
Computer Science).
3. String functions in PHP…
Compares pass and
pass1
Mubashir Ali - Lecturer (Department of
22
Computer Science).
3. String functions in PHP…
• strtolower():
– Convert a string in lower case
– strtolower($string);
• strtoupper():
– Convert a string in upper case
– strtoupper($string);
• ucfirst():
– Convert the first character of a string to upper case
– ucfirst($string);
• ucwords():
– Convert the first character of each word in a string to upper case
– ucfirst($string);
Mubashir Ali - Lecturer (Department of
23
Computer Science).
3. String functions in PHP…
Converts name to
lowercase
Converts name
to uppercase
Using ucfirst() Using ucwords()
Mubashir Ali - Lecturer (Department of
24
Computer Science).
3. String functions in PHP…
Lowercase
uppercase
ucfirst()
ucwords()
Mubashir Ali - Lecturer (Department of
25
Computer Science).
3. String functions in PHP…
• strpos():
– finds the position of the first case-sensitive occurrence of a
substring in a string
– strpos($string,sub-string);
• strrpos():
– finds the position of the last case-sensitive occurrence of a
substring in a string
– strrpos($string,sub-string);
• substr_count():
– returns the number of times one string occurs within another
– substr_count($string,sub-string);
Mubashir Ali - Lecturer (Department of
26
Computer Science).
3. String functions in PHP…
Finding first occurrence of ‘a’
Last occurrence of ‘a’
Finding number of occurrences
of ‘a’
Mubashir Ali - Lecturer (Department of
27
Computer Science).
3. String functions in PHP…
First occurrence of ‘a’
Last occurrence of ‘a’
Number of occurrences of ‘a’
Mubashir Ali - Lecturer (Department of
28
Computer Science).
Summary
• Writing regular expression in PHP
• Validating user’s input
• String functions
Mubashir Ali - Lecturer (Department of
29
Computer Science).
References
• Chapter 9, “Beginning PHP and MySQL” by W.
Jason Gilmore, Apress publisher, 4th edition;
2010, ISBN-13 (electronic): 978-1-4302-3115-
8.
Mubashir Ali - Lecturer (Department of
30
Computer Science).