0% found this document useful (0 votes)
59 views

What You Should Already Know

This document provides an introduction to PHP 5, covering what PHP is, how to set it up, basic syntax, variables, and more. Key points include: - PHP is a server-side scripting language used to build dynamic web pages and applications. It allows embedding code into HTML files to create interactive pages. - To use PHP, a web server with PHP support is needed or it can be installed locally along with a database like MySQL. Basic PHP syntax involves opening and closing tags <?php ?> to embed code in HTML files. - Variables in PHP are declared with a $ sign and are dynamically typed. They can be local, global, or static in scope. Functions can access global variables
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

What You Should Already Know

This document provides an introduction to PHP 5, covering what PHP is, how to set it up, basic syntax, variables, and more. Key points include: - PHP is a server-side scripting language used to build dynamic web pages and applications. It allows embedding code into HTML files to create interactive pages. - To use PHP, a web server with PHP support is needed or it can be installed locally along with a database like MySQL. Basic PHP syntax involves opening and closing tags <?php ?> to embed code in HTML files. - Variables in PHP are declared with a $ sign and are dynamically typed. They can be local, global, or static in scope. Functions can access global variables
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 50

PHP 5

PHP is a server scripting language, and is a powerful tool for making dynamic and
interactive Web pages quickly.
PHP is a widely-used, free, and efficient alternative to competitors such as Microsoft's
ASP.

PHP 5 Introduction
PHP scripts are executed on the server.

What You Should Already Know


Before you continue you should have a basic understanding of the following:

HTML
CSS
JavaScript

What is PHP?

PHP
PHP
PHP
PHP

is an acronym for "PHP Hypertext Preprocessor"


is a widely-used, open source scripting language
scripts are executed on the server
costs nothing, it is free to download and use

PHP is simple for beginners.


PHP also offers many advanced features for professional programmers.

What is a PHP File?

PHP files can contain text, HTML, CSS, JavaScript, and PHP code
PHP code are executed on the server, and the result is returned to the browser as
plain HTML
PHP files have extension ".php"

What Can PHP Do?

PHP
PHP
PHP
PHP
PHP
PHP
PHP

can
can
can
can
can
can
can

generate dynamic page content


create, open, read, write, and close files on the server
collect form data
send and receive cookies
add, delete, modify data in your database
restrict users to access some pages on your website
encrypt data

With PHP you are not limited to output HTML. You can output images, PDF files, and even
Flash movies. You can also output any text, such as XHTML and XML.

Why PHP?

PHP
PHP
PHP
PHP
PHP

runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.)


is compatible with almost all servers used today (Apache, IIS, etc.)
supports a wide range of databases
is free. Download it from the official PHP resource: www.php.net
is easy to learn and runs efficiently on the server side

PHP 5 Installation
What Do I Need?
To start using PHP, you can:

Find a web host with PHP and MySQL support


Install a web server on your own PC, and then install PHP and MySQL

Use a Web Host With PHP Support


If your server has activated support for PHP you do not need to do anything.
Just create some .php files, place them in your web directory, and the server will
automatically parse them for you.
You do not need to compile anything or install any extra tools.
Because PHP is free, most web hosts offer PHP support.

Set Up PHP on Your Own PC


However, if your server does not support PHP, you must:

install a web server


install PHP
install a database, such as MySQL

Tip: To get PHP up and running immediately for Windows, you can:
Download WebMatrix

PHP 5 Syntax
The PHP script is executed on the server, and the plain HTML result is sent back to the
browser.

Basic PHP Syntax


A PHP script can be placed anywhere in the document.
A PHP script starts with <?php and ends with ?>:
<?php
// PHP code goes here
?>
The default file extension for PHP files is ".php".
A PHP file normally contains HTML tags, and some PHP scripting code.
Below, we have an example of a simple PHP file, with a PHP script that uses a built-in PHP
function "echo" to output the text "Hello World!" on a web page:

Example
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>

Note: PHP statements are terminated by semicolon (;). The closing tag of a block of PHP
code also automatically implies a semicolon (so you do not have to have a semicolon
terminating the last line of a PHP block).

Comments in PHP
A comment in PHP code is a line that is not read/executed as part of the program. Its only
purpose is to be read by someone who is editing the code!
Comments are useful for:

To let others understand what you are doing - Comments let other programmers
understand what you were doing in each step (if you work in a group)
To remind yourself what you did - Most programmers have experienced coming back
to their own work a year or two later and having to re-figure out what they did.
Comments can remind you of what you were thinking when you wrote the code

PHP supports three ways of commenting:

Example
<!DOCTYPE html>
<html>
<body>
<?php
// This is a single line comment
# This is also a single line comment
/*
This is a multiple lines comment block
that spans over more than
one line
*/
?>
</body>
</html>

PHP Case Sensitivity


In PHP, all user-defined functions, classes, and keywords (e.g. if, else, while, echo, etc.) are
case-insensitive.
In the example below, all three echo statements below are legal (and equal):

Example
<!DOCTYPE html>
<html>
<body>
<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>
</body>
</html>
However; in PHP, all variables are case-sensitive.
In the example below, only the first statement will display the value of the $color variable
(this is because $color, $COLOR, and $coLOR are treated as three different variables):

Example
<!DOCTYPE html>
<html>
<body>
<?php
$color="red";
echo "My car is " . $color . "<br>";
echo "My house is " . $COLOR . "<br>";
echo "My boat is " . $coLOR . "<br>";
?>
</body>
</html>

PHP 5 Variables
Variables are "containers" for storing information:
Example
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

Much Like Algebra


x=5
y=6
z=x+y
In algebra we use letters (like x) to hold values (like 5).
From the expression z=x+y above, we can calculate the value of z to be 11.
In PHP these letters are called variables.

Think of variables as containers for storing data.

PHP Variables
As with algebra, PHP variables can be used to hold values (x=5) or expressions (z=x+y).
A variable can have a short name (like x and y) or a more descriptive name (age, carname,
total_volume).
Rules for PHP variables:

A variable starts with the $ sign, followed by the name of the variable
A variable name must start with a letter or the underscore character
A variable name cannot start with a number
A variable name can only contain alpha-numeric characters and underscores (A-z, 09, and _ )
Variable names are case sensitive ($y and $Y are two different variables)

Remember that PHP variables are case-sensitive.

Creating (Declaring) PHP Variables


PHP has no command for declaring a variable.
A variable is created the moment you first assign a value to it:

Example
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
After the execution of the statements above, the variable txt will hold the value Hello
world!, the variable x will hold the value 5, and the variable y will hold the value 10.5.
Note: When you assign a text value to a variable, put quotes around the value.

PHP is a Loosely Type Language


In the example above, notice that we did not have to tell PHP which data type the
variable is. PHP automatically converts the variable to the correct data type, depending on
its value. In other languages such as C, C++, and Java, the programmer must declare the
name and type of the variable before using it.

PHP Variables Scope


In PHP, variables can be declared anywhere in the script. The scope of a variable is the
part of the script where the variable can be referenced/used. PHP has three different
variable scopes:

local
global
static

Local and Global Scope


A variable declared outside a function has a GLOBAL SCOPE and can only be accessed
outside a function.
A variable declared within a function has a LOCAL SCOPE and can only be accessed within
that function.
The following example tests variables with local and global scope:

Example
<?php
$x=5; // global scope
function myTest()
{
$y=10; // local scope
echo "<p>Test variables inside the function:<p>";

echo "Variable x is: $x";


echo "<br>";
echo "Variable y is: $y";
}
myTest();
echo
echo
echo
echo
?>

"<p>Test variables outside the function:<p>";


"Variable x is: $x";
"<br>";
"Variable y is: $y";

In the example above there are two variables $x and $y and a function myTest(). $x
is a global variable since it is declared outside the function and $y is a local variable since it
is created inside the function. When we output the values of the two variables inside the
myTest() function, it prints the value of $y as it is the locally declared, but cannot print the
value of $x since it is created outside the function. Then, when we output the values of the
two variables outside the myTest() function, it prints the value of $x, but cannot print the
value of $y since it is a local variable and it is created inside the myTest() function.

You can have local variables with the same name in different functions, because local variables are on
recognized by the function in which they are declared.

PHP The global Keyword


The global keyword is used to access a global variable from within a function. To do
this, use the global keyword before the variables (inside the function):

Example
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // outputs 15
?>

PHP also stores all global variables in an array called $GLOBALS[index].


The index holds the name of the variable. This array is also accessible from within functions
and can be used to update global variables directly.
The example above can be rewritten like this:

Example
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>

PHP The static Keyword


Normally, when a function is completed/executed, all of its variables are deleted.
However, sometimes we want a local variable NOT to be deleted. We need it for a further
job. To do this, use the static keyword when you first declare the variable:

Example
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Then, each time the function is called, that variable will still have the information it
contained from the last time the function was called.

Note: The variable is still local to the function.

PHP 5 echo and print Statements


In PHP there is two basic ways to get output: echo and print.
In this tutorial we use echo (and print) in almost every example. So, this chapter
contains a little more info about those two output statements.

PHP echo and print Statements


There are some differences between echo and print:

echo - can output one or more strings


print - can only output one string, and returns always 1

Tip: echo is marginally faster compared to print as echo does not return any value.

The PHP echo Statement


echo is a language construct, and can be used with or without parentheses: echo or echo().
Display Strings
The following example shows how to display different strings with the echo command (also
notice that the strings can contain HTML markup):

Example
<?php
echo "<h2>PHP is fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This", " string", " was", " made", " with multiple parameters.";
?>
Display Variables
The following example shows how to display strings and variables with the echo command:

Example
<?php
$txt1="Learn PHP";
$txt2="W3Schools.com";
$cars=array("Volvo","BMW","Toyota");
echo
echo
echo
echo
?>

$txt1;
"<br>";
"Study PHP at $txt2";
"My car is a {$cars[0]}";

The PHP print Statement


print is also a language construct, and can be used with or without parentheses: print or
print().
Display Strings
The following example shows how to display different strings with the print command (also
notice that the strings can contain HTML markup):

Example
<?php
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>
Display Variables
The following example shows how to display strings and variables with the print command:

Example
<?php
$txt1="Learn PHP";
$txt2="W3Schools.com";
$cars=array("Volvo","BMW","Toyota");
print
print
print
print
?>

$txt1;
"<br>";
"Study PHP at $txt2";
"My car is a {$cars[0]}";

PHP Data Types


String, Integer, Floating point numbers, Boolean, Array, Object, NULL.

PHP Strings
A string is a sequence of characters, like "Hello world!".
A string can be any text inside quotes. You can use single or double quotes:

Example
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>

PHP Integers
An integer is a number without decimals.
Rules for integers:

An integer must have at least one digit (0-9)


An integer cannot contain comma or blanks
An integer must not have a decimal point
An integer can be either positive or negative
Integers can be specified in three formats: decimal (10-based), hexadecimal (16based - prefixed with 0x) or octal (8-based - prefixed with 0)

In the following example we will test different numbers. The PHP var_dump() function
returns the data type and value of variables:

Example
<?php
$x = 5985;
var_dump($x);

echo "<br>";
$x = -345; // negative number
var_dump($x);
echo "<br>";
$x = 0x8C; // hexadecimal number
var_dump($x);
echo "<br>";
$x = 047; // octal number
var_dump($x);
?>

PHP Floating Point Numbers


A floating point number is a number with a decimal point or a number in exponential form.
In the following example we will test different numbers. The PHP var_dump() function
returns the data type and value of variables:

Example
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>

PHP Booleans
Booleans can be either TRUE or FALSE.
$x=true;
$y=false;
Booleans are often used in conditional testing. You will learn more about conditional testing
in a later chapter of this tutorial.

PHP Arrays
An array stores multiple values in one single variable.
In the following example we create an array, and then use the PHP var_dump() function to
return the data type and value of the array:

Example
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
You will learn a lot more about arrays in later chapters of this tutorial.

PHP Objects
An object is a data type which stores data and information on how to process that data.
In PHP, an object must be explicitly declared.
First we must declare a class of object. For this, we use the class keyword. A class is a
structure that can contain properties and methods.
We then define the data type in the object class, and then we use the data type in instances
of that class:

Example
<?php
class Car
{
var $color;
function Car($color="green")
{
$this->color = $color;
}
function what_color()
{
return $this->color;
}
}
?>
You will learn more about objects in a later chapter of this tutorial.

PHP NULL Value


The special NULL value represents that a variable has no value. NULL is the only possible
value of data type NULL.
The NULL value identifies whether a variable is empty or not. Also useful to differentiate
between the empty string and null values of databases.
Variables can be emptied by setting the value to NULL:

Example
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>

PHP String Functions


In this chapter we will look at some commonly used functions to manipulate strings.

The PHP strlen() function


The strlen() function returns the length of a string, in characters.
The example below returns the length of the string "Hello world!":

Example
<?php
echo strlen("Hello world!");
?>
The output of the code above will be: 12
Tip: strlen() is often used in loops or other functions, when it is important to know when a string ends. (i.e. in a
loop, we might want to stop the loop after the last character in a string).

The PHP strpos() function


The strpos() function is used to search for a specified character or text within a string.
If a match is found, it will return the character position of the first match. If no match is found, it will return FALSE.

The example below searches for the text "world" in the string "Hello world!":

Example
<?php
echo strpos("Hello world!","world");
?>

PHP Operators
This chapter shows the different operators that can be used in PHP scripts.

PHP Arithmetic Operators


Operator

Name

Example

Result

Addition

$x + $y

Sum of $x and $y

Subtraction

$x - $y

Difference of $x and $y

Multiplication

$x * $y

Product of $x and $y

Division

$x / $y

Quotient of $x and $y

Modulus

$x % $y

Remainder of $x divided by $y

The example below shows the different results of using the different arithmetic operators:

Example
<?php
$x=10;
$y=6;
echo ($x
echo ($x
echo ($x
echo ($x
echo ($x
?>

+
*
/
%

$y);
$y);
$y);
$y);
$y);

//
//
//
//
//

outputs
outputs
outputs
outputs
outputs

16
4
60
1.6666666666667
4

PHP Assignment Operators


The PHP assignment operators is used to write a value to a variable.
The basic assignment operator in PHP is "=". It means that the left operand gets set to the value of the assignment
expression on the right.
Assignment

Same as...

Description

The left operand gets set to the value of the expression on

x=y

x=y

x += y

x=x+y

Addition

x -= y

x=x-y

Subtraction

x *= y

x=x*y

Multiplication

x /= y

x=x/y

Division

x %= y

x=x%y

Modulus

the right

The example below shows the different results of using the different assignment operators:

Example
<?php
$x=10;
echo $x; // outputs 10
$y=20;
$y += 100;
echo $y; // outputs 120
$z=50;
$z -= 25;
echo $z; // outputs 25
$i=5;
$i *= 6;
echo $i; // outputs 30
$j=10;
$j /= 5;
echo $j; // outputs 2
$k=15;
$k %= 4;
echo $k; // outputs 3
?>

PHP String Operators


Operator
.

Name
Concatenation

Example
$txt1 = "Hello"

Result
Now $txt2 contains "Hello

$txt2 = $txt1 . "

world!"

world!"
.=

Concatenation

$txt1 = "Hello"

Now $txt1 contains "Hello

assignment

$txt1 .= " world!"

world!"

The example below shows the results of using the string operators:

Example
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // outputs Hello world!
$x="Hello";
$x .= " world!";
echo $x; // outputs Hello world!
?>

PHP Increment / Decrement Operators


Operator

Name

Description

++$x

Pre-increment

Increments $x by one, then returns $x

$x++

Post-increment

Returns $x, then increments $x by one

--$x

Pre-decrement

Decrements $x by one, then returns $x

$x--

Post-decrement

Returns $x, then decrements $x by one

The example below shows the different results of using the different increment/decrement operators:

Example
<?php
$x=10;
echo ++$x; // outputs 11
$y=10;
echo $y++; // outputs 10
$z=5;
echo --$z; // outputs 4
$i=5;
echo $i--; // outputs 5
?>

PHP Comparison Operators


The PHP comparison operators are used to compare two values (number or string):
Operator

Name

Example

Result

==

Equal

$x == $y

===

Identical

$x === $y

!=

Not equal

$x != $y

True if $x is not equal to $y

<>

Not equal

$x <> $y

True if $x is not equal to $y

!==

Not identical

$x !== $y

>

Greater than

$x > $y

True if $x is greater than $y

<

Less than

$x < $y

True if $x is less than $y

>=

<=

Greater than or equal


to
Less than or equal to

$x >= $y

$x <= $y

True if $x is equal to $y
True if $x is equal to $y, and
they are of the same type

True if $x is not equal to $y, or


they are not of the same type

True if $x is greater than or


equal to $y
True if $x is less than or equal
to $y

The example below shows the different results of using some of the comparison operators:

Example
<?php
$x=100;
$y="100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a=50;
$b=90;

var_dump($a > $b);


echo "<br>";
var_dump($a < $b);
?>

PHP Logical Operators


Operator

Name

Example

Result

and

And

$x and $y

True if both $x and $y are true

or

Or

$x or $y

True if either $x or $y is true

xor

Xor

$x xor $y

&&

And

$x && $y

True if both $x and $y are true

||

Or

$x || $y

True if either $x or $y is true

Not

!$x

True if $x is not true

True if either $x or $y is true,


but not both

PHP Array Operators


The PHP array operators are used to compare arrays:
Operator

Name

Example

Result
Union of $x and $y (but

Union

$x + $y

duplicate keys are not


overwritten)

==

Equality

$x == $y

True if $x and $y have the


same key/value pairs
True if $x and $y have the

===

Identity

$x === $y

same key/value pairs in the


same order and of the same
types

!=

Inequality

$x != $y

True if $x is not equal to $y

<>

Inequality

$x <> $y

True if $x is not equal to $y

!==

Non-identity

$x !== $y

True if $x is not identical to $y

The example below shows the different results of using the different array operators:

Example
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // union of $x and $y
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>

PHP if...else...elseif Statements


Conditional statements are used to perform different actions based on different conditions.

PHP Conditional Statements


Very often when you write code, you want to perform different actions for different decisions. You can use
conditional statements in your code to do this.
In PHP we have the following conditional statements:

if statement - executes some code only if a specified condition is true

if...else statement - executes some code if a condition is true and another code if
the condition is false

if...elseif....else statement - selects one of several blocks of code to be executed

switch statement - selects one of many blocks of code to be executed

PHP - The if Statement


The if statement is used to execute some code only if a specified condition is true.

Syntax
if (condition)
{
code to be executed if condition is true;
}
The example below will output "Have a good day!" if the current time (HOUR) is less than 20:

Example
<?php
$t=date("H");
if ($t<"20")

{
echo "Have a good day!";
}
?>

PHP - The if...else Statement


Use the if....else statement to execute some code if a condition is true and another code if the condition is false.

Syntax
if (condition)
{
code to be executed if condition is true;
}
else
{
code to be executed if condition is false;
}
The example below will output "Have a good day!" if the current time is less than 20, and "Have a good night!"
otherwise:

Example
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>

PHP - The if...elseif....else Statement


Use the if....elseif...else statement to select one of several blocks of code to be executed.

Syntax
if (condition)
{
code to be executed if condition is true;
}
elseif (condition)
{

code to be executed if condition is true;


}
else
{
code to be executed if condition is false;
}
The example below will output "Have a good morning!" if the current time is less than 10, and "Have a good day!"
if the current time is less than 20. Otherwise it will output "Have a good night!":

Example
<?php
$t=date("H");
if ($t<"10")
{
echo "Have a good morning!";
}
elseif ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>

PHP switch Statement


The switch statement is used to perform different actions based on different conditions.

The PHP switch Statement


Use the switch statement to select one of many blocks of code to be executed.

Syntax
switch (n)
{
case label1:
code to be executed if n=label1;
break;
case label2:
code to be executed if n=label2;
break;
case label3:
code to be executed if n=label3;

break;
...
default:
code to be executed if n is different from all labels;
}
This is how it works: First we have a single expression n (most often a variable), that is evaluated once. The value of
the expression is then compared with the values for each case in the structure. If there is a match, the block of code
associated with that case is executed. Use break to prevent the code from running into the next case automatically.
The default statement is used if no match is found.

Example
<?php
$favcolor="red";
switch ($favcolor)
{
case "red":
echo "Your favorite
break;
case "blue":
echo "Your favorite
break;
case "green":
echo "Your favorite
break;
default:
echo "Your favorite
}
?>

color is red!";

color is blue!";

color is green!";

color is neither red, blue, or green!";

PHP while Loops


PHP while loops execute a block of code while the specified condition is true.

PHP Loops
Often when you write code, you want the same block of code to run over and over again in a row. Instead of adding
several almost equal code-lines in a script, we can use loops to perform a task like this.
In PHP, we have the following looping statements:

while - loops through a block of code as long as the specified condition is true

do...while - loops through a block of code once, and then repeats the loop as long
as the specified condition is true

for - loops through a block of code a specified number of times

foreach - loops through a block of code for each element in an array

The PHP while Loop


The while loop executes a block of code as long as the specified condition is true.

Syntax
while (condition is true)
{
code to be executed;
}
The example below first sets a variable $x to 1 ($x=1;). Then, the while loop will continue to run as long as $x is
less than, or equal to 5. $x will increase by 1 each time the loop runs ($x++;):

Example
<?php
$x=1;
while($x<=5)
{
echo "The number is: $x <br>";
$x++;
}
?>

The PHP do...while Loop


The do...while loop will always execute the block of code once, it will then check the condition, and repeat the loop
while the specified condition is true.

Syntax
do
{
code to be executed;
}
while (condition is true);
The example below first sets a variable $x to 1 ($x=1;). Then, the do while loop will write some output, and then
increment the variable $x with 1. Then the condition is checked (is $x less than, or equal to 5?), and the loop will
continue to run as long as $x is less than, or equal to 5:

Example
<?php
$x=1;
do
{
echo "The number is: $x <br>";
$x++;
}
while ($x<=5)
?>

Notice that in a do while loop the condition is tested AFTER executing the statements within the loop. This means
that the do while loop would execute its statements at least once, even if the condition fails the first time.
The example below sets the $x variable to 6, then it runs the loop, and then the condition is checked:

Example
<?php
$x=6;
do
{
echo "The number is: $x <br>";
$x++;
}
while ($x<=5)
?>

PHP for Loops


PHP for loops execute a block of code a specified number of times.

The PHP for Loop


The for loop is used when you know in advance how many times the script should run.

Syntax
for (init counter; test counter; increment counter)
{
code to be executed;
}
Parameters:

init counter: Initialize the loop counter value

test counter: Evaluated for each loop iteration. If it evaluates to TRUE, the loop
continues. If it evaluates to FALSE, the loop ends.

increment counter: Increases the loop counter value

The example below displays the numbers from 0 to 10:

Example
<?php
for ($x=0; $x<=10; $x++)
{
echo "The number is: $x <br>";
}
?>

The PHP foreach Loop


The foreach loop works only on arrays, and is used to loop through each key/value pair in an array.

Syntax
foreach ($array as $value)
{
code to be executed;
}
For every loop iteration, the value of the current array element is assigned to $value and the array pointer is moved
by one, until it reaches the last array element.
The following example demonstrates a loop that will output the values of the given array ($colors):

Example
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value)
{
echo "$value <br>";
}
?>

PHP Functions
The real power of PHP comes from its functions; it has more than 1000 built-in functions.

PHP User Defined Functions


Besides the built-in PHP functions, we can create our own functions.
A function is a block of statements that can be used repeatedly in a program.
A function will not execute immediately when a page loads.
A function will be executed by a call to the function.

Create a User Defined Function in PHP


A user defined function declaration starts with the word "function":

Syntax
function functionName()
{

code to be executed;
}
Note: A function name can start with a letter or underscore (not a number).
Tip: Give the function a name that reflects what the function does!

Remember that function names are case-insensitive.

In the example below, we create a function named "writeMsg()". The opening curly brace ( { ) indicates the
beginning of the function code and the closing curly brace ( } ) indicates the end of the function. The function
outputs "Hello world!". To call the function, just write its name:

Example
<?php
function writeMsg()
{
echo "Hello world!";
}
writeMsg(); // call the function
?>

PHP Function Arguments


Information can be passed to functions through arguments. An argument is just like a variable.
Arguments are specified after the function name, inside the parentheses. You can add as many arguments as you
want, just seperate them with a comma.
The following example has a function with one argument ($fname). When the familyName() function is called, we
also pass along a name (e.g. Jani), and the name is used inside the function, which outputs several different first
names, but an equal last name:

Example
<?php
function familyName($fname)
{
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");

familyName("Borge");
?>
The following example has a function with two arguments ($fname and $year):

Example
<?php
function familyName($fname,$year)
{
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege","1975");
familyName("Stle","1978");
familyName("Kai Jim","1983");
?>

PHP Default Argument Value


The following example shows how to use a default parameter. If we call the function setHeight() without arguments
it takes the default value as argument:

Example
<?php
function setHeight($minheight=50)
{
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>

PHP Functions - Returning values


To let a function return a value, use the return statement:

Example
<?php
function sum($x,$y)
{
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";

echo "7 + 13 = " . sum(7,13) . "<br>";


echo "2 + 4 = " . sum(2,4);
?>

PHP Arrays
An array stores multiple values in one single variable:
Example
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

What is an Array?
An array is a special variable, which can hold more than one value at a time.
If you have a list of items (a list of car names, for example), storing the cars in single variables could look like this:
$cars1="Volvo";
$cars2="BMW";
$cars3="Toyota";
However, what if you want to loop through the cars and find a specific one? And what if you had not 3 cars, but
300?
The solution is to create an array!
An array can hold many values under a single name, and you can access the values by referring to an index number.

Create an Array in PHP


In PHP, the array() function is used to create an array:
array();
In PHP, there are three types of arrays:

Indexed arrays - Arrays with numeric index

Associative arrays - Arrays with named keys

Multidimensional arrays - Arrays containing one or more arrays

PHP Indexed Arrays


There are two ways to create indexed arrays:
The index can be assigned automatically (index always starts at 0):
$cars=array("Volvo","BMW","Toyota");
or the index can be assigned manually:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
The following example creates an indexed array named $cars, assigns three elements to it, and then prints a text
containing the array values:

Example
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

Get The Length of an Array - The count() Function


The count() function is used to return the length (the number of elements) of an array:

Example
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>

Loop Through an Indexed Array


To loop through and print all the values of an indexed array, you could use a for loop, like this:

Example
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>

PHP Associative Arrays


Associative arrays are arrays that use named keys that you assign to them.
There are two ways to create an associative array:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
The named keys can then be used in a script:

Example
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

Loop Through an Associative Array


To loop through and print all the values of an associative array, you could use a foreach loop, like this:

Example
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

PHP Sorting Arrays


The elements in an array can be sorted in alphabetical or numerical order, descending or
ascending.

PHP - Sort Functions For Arrays


In this chapter, we will go through the following PHP array sort functions:

sort() - sort arrays in ascending order

rsort() - sort arrays in descending order

asort() - sort associative arrays in ascending order, according to the value

ksort() - sort associative arrays in ascending order, according to the key

arsort() - sort associative arrays in descending order, according to the value

krsort() - sort associative arrays in descending order, according to the key

Sort Array in Ascending Order - sort()


The following example sorts the elements of the $cars array in ascending alphabetical order:

Example
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>
The following example sorts the elements of the $numbers array in ascending numerical order:

Example
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
?>

Sort Array in Descending Order - rsort()


The following example sorts the elements of the $cars array in descending alphabetical order:

Example
<?php
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
?>
The following example sorts the elements of the $numbers array in descending numerical order:

Example
<?php
$numbers=array(4,6,2,22,11);
rsort($numbers);
?>

Sort Array in Ascending Order, According to Value - asort()


The following example sorts an associative array in ascending order, according to the value:

Example
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
?>

Sort Array in Ascending Order, According to Key - ksort()


The following example sorts an associative array in ascending order, according to the key:

Example
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
?>

Sort Array in Descending Order, According to Value - arsort()


The following example sorts an associative array in descending order, according to the value:

Example
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
?>

Sort Array in Descending Order, According to Key - krsort()


The following example sorts an associative array in descending order, according to the key:

Example
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
?>

PHP Global Variables - Superglobals


Superglobals were introduced in PHP 4.1.0, and are built-in variables that are always available in
all scopes.

PHP Global Variables - Superglobals


Several predefined variables in PHP are "superglobals", which means that they are always accessible, regardless of
scope - and you can access them from any function, class or file without having to do anything special.

The PHP superglobal variables are:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

This chapter will explain some of the superglobals, and the rest will be explained in later chapters.

PHP $GLOBAL
$GLOBAL is a PHP super global variable which is used to access global variables from anywhere in the PHP script
(also from within functions or methods).
PHP stores all global variables in an array called $GLOBALS[index]. The index holds the name of the variable.
The example below shows how to use the super global variable $GLOBAL:

Example
<?php
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
In the example above, since z is a variable present within the $GLOBALS array, it is also accessible form outside
the function!

PHP $_SERVER
$_SERVER is a PHP super global variable which holds information about headers, paths, and script locations.
The example below shows how to use some of the elements in $_SERVER:

Example
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
The following table lists the most important elements that can go inside $_SERVER:
Element/Code
$_SERVER['PHP_SELF']
$_SERVER['GATEWAY_INTERFACE']
$_SERVER['SERVER_ADDR']
$_SERVER['SERVER_NAME']

$_SERVER['SERVER_SOFTWARE']

$_SERVER['SERVER_PROTOCOL']

$_SERVER['REQUEST_METHOD']

$_SERVER['REQUEST_TIME']

$_SERVER['QUERY_STRING']
$_SERVER['HTTP_ACCEPT']
$_SERVER['HTTP_ACCEPT_CHARSET']

Description
Returns the filename of the currently executing script
Returns the version of the Common Gateway
Interface (CGI) the server is using
Returns the IP address of the host server
Returns the name of the host server (such as
www.w3schools.com)
Returns the server identification string (such as
Apache/2.2.24)
Returns the name and revision of the information
protocol (such as HTTP/1.1)
Returns the request method used to access the page
(such as POST)
Returns the timestamp of the start of the request
(such as 1377687496)
Returns the query string if the page is accessed via a
query string
Returns the Accept header from the current request
Returns the Accept_Charset header from the current
request (such as utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST']
$_SERVER['HTTP_REFERER']
$_SERVER['HTTPS']
$_SERVER['REMOTE_ADDR']

$_SERVER['REMOTE_HOST']

$_SERVER['REMOTE_PORT']

$_SERVER['SCRIPT_FILENAME']

Returns the Host header from the current request


Returns the complete URL of the current page (not
reliable because not all user-agents support it)
Is the script queried through a secure HTTP protocol
Returns the IP address from where the user is
viewing the current page
Returns the Host name from where the user is
viewing the current page
Returns the port being used on the user's machine to
communicate with the web server
Returns the absolute pathname of the currently
executing script
Returns the value given to the SERVER_ADMIN
directive in the web server configuration file (if your

$_SERVER['SERVER_ADMIN']

script runs on a virtual host, it will be the value


defined for that virtual host) (such as
[email protected])

$_SERVER['SERVER_PORT']

$_SERVER['SERVER_SIGNATURE']

$_SERVER['PATH_TRANSLATED']

Returns the port on the server machine being used by


the web server for communication (such as 80)
Returns the server version and virtual host name
which are added to server-generated pages
Returns the file system based path to the current
script

$_SERVER['SCRIPT_NAME']

Returns the path of the current script

$_SERVER['SCRIPT_URI']

Returns the URI of the current page

PHP $_REQUEST
PHP $_REQUEST is used to collect data after submitting an HTML form.
The example below shows a form with an input field and a submit button. When a user submits the data by clicking
on "Submit", the form data is sent to the file specified in the action attribute of the <form> tag. In this example, we
point to this file itself for processing form data. If you wish to use another PHP file to process form data, replace that

with the filename of your choice. Then, we can use the super global variable $_REQUEST to collect the value of the
input field:

Example
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>

PHP $_POST
PHP $_POST is widely used to collect form data after submitting an HTML form with method="post". $_POST is
also widely used to pass variables.
The example below shows a form with an input field and a submit button. When a user submits the data by clicking
on "Submit", the form data is sent to the file specified in the action attribute of the <form> tag. In this example, we
point to this file itself for processing form data. If you wish to use another PHP file to process form data, replace that
with the filename of your choice. Then, we can use the super global variable $_POST to collect the value of the
input field:

Example
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>

PHP $_GET
PHP $_GET can also be used to collect form data after submitting an HTML form with method="get".

$_GET can also collect data sent in the URL.


Assume we have an HTML page that contains a hyperlink with parameters:
<html>
<body>
<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>
</body>
</html>
When a user clicks on the link "Test $GET", the parameters "subject" and "web" is sent to "test_get.php", and you
can then acces their values in "test_get.php" with $_GET.
The example below shows the code in "test_get.php":

Example
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>

PHP Form Handling


The PHP superglobals $_GET and $_POST are used to collect form-data.

PHP - A Simple HTML Form


The example below displays a simple HTML form with two input fields and a submit button:

Example
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

When the user fills out the form above and clicks the submit button, the form data is sent for processing to a PHP
file named "welcome.php". The form data is sent with the HTTP POST method.
To display the submitted data you could simply echo all the variables. The "welcome.php" looks like this:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
The output could be something like this:
Welcome John
Your email address is [email protected]
The same result could also be achieved using the HTTP GET method:

Example
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
and "welcome_get.php" looks like this:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
The code above is quite simple. However, the most important thing is missing. You need to validate form data to
protect your script from malicious code.

Think SECURITY when processing PHP forms!


This page does not contain any form validation, it just shows how you can send and retrieve form data.
However, the next pages will show how to process PHP forms with security in mind! Proper validation of
form data is important to protect your form from hackers and spammers!

GET vs. POST


Both GET and POST create an array (e.g. array( key => value, key2 => value2, key3 => value3, ...)). This array
holds key/value pairs, where keys are the names of the form controls and values are the input data from the user.
Both GET and POST are treated as $_GET and $_POST. These are superglobals, which means that they are always
accessible, regardless of scope - and you can access them from any function, class or file without having to do
anything special.
$_GET is an array of variables passed to the current script via the URL parameters.
$_POST is an array of variables passed to the current script via the HTTP POST method.

When to use GET?


Information sent from a form with the GET method is visible to everyone (all variable names and values are
displayed in the URL). GET also has limits on the amount of information to send. The limitation is about 2000
characters. However, because the variables are displayed in the URL, it is possible to bookmark the page. This can
be useful in some cases.
GET may be used for sending non-sensitive data.
Note: GET should NEVER be used for sending passwords or other sensitive information!

When to use POST?


Information sent from a form with the POST method is invisible to others (all names/values are embedded within
the body of the HTTP request) and has no limits on the amount of information to send.
Moreover POST supports advanced functionality such as support for multi-part binary input while uploading files to
server.
However, because the variables are not displayed in the URL, it is not possible to bookmark the page.

Developers prefer POST for sending form data.

PHP Form Validation


This and the next chapters show how to use PHP to validate form data.

PHP Form Validation


Think SECURITY when processing PHP forms!
These pages will show how to process PHP forms with security in mind. Proper validation of form data is
important to protect your form from hackers and spammers!

The HTML form we will be working at in these chapters, contains various input fields: required and optional text
fields, radio buttons, and a submit button:
The validation rules for the form above are as follows:
Field

Validation Rules

Name

Required. + Must only contain letters and whitespace

E-mail

Required. + Must contain a valid email address (with @ and .)

Website

Optional. If present, it must contain a valid URL

Comment

Optional. Multi-line input field (textarea)

Gender

Required. Must select one

First we will look at the plain HTML code for the form:

Text Fields
The name, email, and website fields are text input elements, and the comment field is a textarea. The HTML code
looks like this:
Name: <input type="text" name="name">
E-mail: <input type="text" name="email">
Website: <input type="text" name="website">
Comment: <textarea name="comment" rows="5" cols="40"></textarea>

Radio Buttons
The gender fields are radio buttons and the HTML code looks like this:

Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male

The Form Element


The HTML code of the form looks like this:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
When the form is submitted, the form data is sent with method="post".

What is the $_SERVER["PHP_SELF"] variable?


The $_SERVER["PHP_SELF"] is a super global variable that returns the filename of the
currently executing script.

So, the $_SERVER["PHP_SELF"] sends the submitted form data to the page itself, instead of jumping to a different
page. This way, the user will get error messages on the same page as the form.

What is the htmlspecialchars() function?


The htmlspecialchars() function converts special characters to HTML entities. This
means that it will replace HTML characters like < and > with &lt; and &gt;. This
prevents attackers from exploiting the code by injecting HTML or Javascript code
(Cross-site Scripting attacks) in forms.

Big Note on PHP Form Security


The $_SERVER["PHP_SELF"] variable can be used by hackers!
If PHP_SELF is used in your page then a user can enter a slash (/) and then some Cross Site Scripting (XSS)
commands to execute.

Cross-site scripting (XSS) is a type of computer security vulnerability


typically found in Web applications. XSS enables attackers to inject clientside script into Web pages viewed by other users.

Assume we have the following form in a page named "test_form.php":


<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
Now, if a user enters the normal URL in the address bar like "http://www.example.com/test_form.php", the above
code will be translated to:
<form method="post" action="test_form.php">
So far, so good.
However, consider that a user enters the following URL in the address bar:
http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script
%3E
In this case, the above code will be translated to:
<form method="post" action="test_form.php"/><script>alert('hacked')</script>
This code adds a script tag and an alert command. And when the page loads, the JavaScript code will be executed
(the user will see an alert box). This is just a simple and harmless example how the PHP_SELF variable can be
exploited.
Be aware of that any JavaScript code can be added inside the <script> tag! A hacker can redirect the user to a
file on another server, and that file can hold malicious code that can alter the global variables or submit the form to
another address to save the user data, for example.

How To Avoid $_SERVER["PHP_SELF"] Exploits?


$_SERVER["PHP_SELF"] exploits can be avoided by using the htmlspecialchars() function.
The form code should look like this:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
The htmlspecialchars() function converts special characters to HTML entities. Now if the user tries to exploit the
PHP_SELF variable, it will result in the following output:
<form method="post"
action="test_form.php/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/script&gt;">
The exploit attempt fails, and no harm is done!

Validate Form Data With PHP


The first thing we will do is to pass all variables through PHP's htmlspecialchars() function.
When we use the htmlspecialchars() function; then if a user tries to submit the following in a text field:

<script>location.href('http://www.hacked.com')</script>
- this would not be executed, because it would be saved as HTML escaped code, like this:
&lt;script&gt;location.href('http://www.hacked.com')&lt;/script&gt;
The code is now safe to be displayed on a page or inside an e-mail.
We will also do two more things when the user submits the form:
1. Strip unnecessary characters (extra space, tab, newline) from the user input data
(with the PHP trim() function)
2. Remove backslashes (\) from the user input data (with the PHP stripslashes()
function)
The next step is to create a function that will do all the checking for us (which is much more convenient than writing
the same code over and over again).
We will name the function test_input().
Now, we can check each $_POST variable with the test_input() function, and the script look like this:

Example
<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
Notice that at the start of the script, we check whether the form has been submitted using
$_SERVER["REQUEST_METHOD"]. If the REQUEST_METHOD is POST, then the form has been submitted and it should be validated. If it has not been submitted, skip the validation and display a blank form.
However, in the example above, all input fields are optional. The script works fine even if the user do not enter any
data.

PHP Forms - Required Fields


This chapter show how to make input fields required and create error messages if needed.

PHP - Required Fields


From the validation rules table on the previous page, we see that the "Name", "E-mail", and "Gender" fields are
required. These fields cannot be empty and must be filled out in the HTML form.
Field

Validation Rules

Name

Required. + Must only contain letters and whitespace

E-mail

Required. + Must contain a valid email address (with @ and .)

Website

Optional. If present, it must contain a valid URL

Comment

Optional. Multi-line input field (textarea)

Gender

Required. Must select one

In the previous chapter, all input fields were optional.


In the following code we have added some new variables: $nameErr, $emailErr, $genderErr, and $websiteErr. These
error variables will hold error messages for the required fields. We have also added an if else statement for each
$_POST variable. This checks if the $_POST variable is empty (with the PHP empty() function). If it is empty, an
error message is stored in the different error variables, and if it is not empty, it sends the user input data through the
test_input() function:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["name"]))
{$nameErr = "Name is required";}
else
{$name = test_input($_POST["name"]);}
if (empty($_POST["email"]))
{$emailErr = "Email is required";}
else
{$email = test_input($_POST["email"]);}
if (empty($_POST["website"]))

{$website = "";}
else
{$website = test_input($_POST["website"]);}
if (empty($_POST["comment"]))
{$comment = "";}
else
{$comment = test_input($_POST["comment"]);}
if (empty($_POST["gender"]))
{$genderErr = "Gender is required";}
else
{$gender = test_input($_POST["gender"]);}
}
?>

PHP - Display The Error Messages


Then in the HTML form, we add a little script after each required field, which generates the correct error message if
needed (that is if the user tries to submit the form without filling out the required fields):

Example
<form method="post" action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
<label>Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>

PHP Forms - Validate E-mail and URL


This chapter show how to validate names, e-mails, and URLs.

PHP - Validate Name


The code below shows a simple way to check if the name field only contains letters and whitespace. If the value of
the name field is not valid, then store an error message:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$nameErr = "Only letters and white space allowed";
}

The preg_match() function searches a string for pattern, returning true if the
pattern exists, and false otherwise.

PHP - Validate E-mail


The code below shows a simple way to check if an e-mail address syntax is valid. If the e-mail address syntax is not
valid, then store an error message:
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
$emailErr = "Invalid email format";
}

PHP - Validate URL


The code below shows a way to check if a URL address syntax is valid (this regular expression also allows dashes in
the URL). If the URL address syntax is not valid, then store an error message:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z09+&@#\/%=~_|]/i",$website))
{
$websiteErr = "Invalid URL";
}

PHP - Validate Name, E-mail, and URL


Now, the script looks like this:

Example
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["name"]))
{$nameErr = "Name is required";}
else
{
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"]))
{$emailErr = "Email is required";}
else
{
$email = test_input($_POST["email"]);
// check if e-mail address syntax is valid
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"]))
{$website = "";}
else
{
$website = test_input($_POST["website"]);
// check if URL address syntax is valid (this regular expression also
allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z09+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
{
$websiteErr = "Invalid URL";
}
}

if (empty($_POST["comment"]))
{$comment = "";}
else
{$comment = test_input($_POST["comment"]);}
if (empty($_POST["gender"]))
{$genderErr = "Gender is required";}
else
{$gender = test_input($_POST["gender"]);}
}
?>

You might also like