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

BSC Webtech Handout

This document outlines the course content for a 180-hour course on web technology using PHP and MySQL. The course aim is to equip students with knowledge and skills for developing dynamic web applications. Key learning outcomes include understanding web hardware/software, PHP principles, database design with MySQL, and developing web applications using techniques like MVC frameworks. The course content is divided into units that cover topics such as the basics of websites, PHP syntax, variables, comments, sending data to browsers, and MySQL.

Uploaded by

senzo makenzi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views

BSC Webtech Handout

This document outlines the course content for a 180-hour course on web technology using PHP and MySQL. The course aim is to equip students with knowledge and skills for developing dynamic web applications. Key learning outcomes include understanding web hardware/software, PHP principles, database design with MySQL, and developing web applications using techniques like MVC frameworks. The course content is divided into units that cover topics such as the basics of websites, PHP syntax, variables, comments, sending data to browsers, and MySQL.

Uploaded by

senzo makenzi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 81

BSC: 209 WEB TECHNOLOGY

NOMINAL HOURS -180

COURSE AIM: To equip students with knowledge and skills of developing web
applications using modern technologies and best practices using PHP and MySQL

LEARNING OUTCOMES: By the end of this course students should be able to:

1. Understand the hardware and software of web development


2. Understand the principles of PHP
3. Apply the concept of creating Dynamic web sites
4. Understand the concept Database Design, MySQL and SQL Language
5. Demonstrate competence in the use of PHP with MySQL
6. Demonstrate the ability to develop web application
7. Apply Advanced programming Techniques
8. Understand MVC and PHP Frameworks
9. Apply the concept of CSS, DOM and Basic JavaScript

COURSE CONTENT
UNIT 1: UNDERSTANDING THE HARDWARE AND SOFTWARE OF WEBSITES
1.1 Hardware and software basics
1.2 Setting up your production Environment
1.3 Creating “Hello”, World in PHP

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

If you want to study these subjects first, find the tutorials on our Home page.

What is PHP?

 PHP is an acronym for "PHP: Hypertext Preprocessor"


 PHP is a widely-used, open source scripting language
 PHP scripts are executed on the server
 PHP is free to download and use
PHP is an amazing and popular language!

It is powerful enough to be at the core of the biggest blogging system on the web
(WordPress)!
It is deep enough to run the largest social network (Facebook)!
It is also easy enough to be a beginner's first server side language!

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 can generate dynamic page content


 PHP can create, open, read, write, delete, and close files on the server
 PHP can collect form data
 PHP can send and receive cookies
 PHP can add, delete, modify data in your database
 PHP can be used to control user-access
 PHP can 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 runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.)


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

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

The official PHP website (PHP.net) has installation instructions for


PHP: http://php.net/manual/en/install.php

1.3.1 Creating “Hello”, World in PHP


<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

UNIT 2: UNDERSTANDING THE PRINCIPLES OF PHP


2.1 Basic Syntax

A 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>
Run example »

Note: PHP statements end with a semicolon (;).

PHP Case Sensitivity


In PHP, all keywords (e.g. if, else, while, echo, etc.), classes, functions, and user-defined
functions are NOT case-sensitive.

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>
Run example »

However; all variable names 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>
Run example »

2.2 Sending Data to the browser


PHP 5 echo and print Statements

In PHP there are 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

echo and print are more or less the same. They are both used to output data to the screen. 

The differences are small: echo has no return value while print has a return value of 1 so it
can be used in expressions. echo can take multiple parameters (although such usage is rare)
while print can take one argument. echo is marginally faster than print.

The PHP echo Statement

The echo statement can be used with or without parentheses: echo or echo().

Display Text

The following example shows how to output text with the echo command (notice that the text
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.";
?>
Run example »

Display Variables

The following example shows how to output text and variables with the echo statement:

Example
<?php
$txt1 = "Learn PHP";
$txt2 = "W3Schools.com";
$x = 5;
$y = 4;

echo "<h2>$txt1</h2>";
echo "Study PHP at $txt2<br>";
echo $x + $y;
?>
Run example »

The PHP print Statement


The print statement can be used with or without parentheses: print or print().

Display Text

The following example shows how to output text with the print command (notice that the text
can contain HTML markup):

Example
<?php
print "<h2>PHP is Fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>
Run example »

Display Variables
The following example shows how to output text and variables with the print statement:

Example
<?php
$txt1 = "Learn PHP";
$txt2 = "W3Schools.com";
$x = 5;
$y = 4;

print "<h2>$txt1</h2>";
print "Study PHP at $txt2<br>";
print $x + $y;
?>
Run example »

2.3 Writing comments

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 looking at the code.

Comments can be used to:

 Let others understand what you are doing


 Remind yourself of 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 several 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 multiple
lines
*/

// You can also use comments to leave out parts of a code line
$x = 5 /* + 15 */ + 5;
echo $x;
?>

</body>
</html>
Run example »

2.3.1 Variables in PHP

Variables are "containers" for storing information.

Creating (Declaring) PHP Variables


In PHP, a variable starts with the $ sign, followed by the name of the variable:

Example
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
Run example »

After the execution of the statements above, the variable $txt will hold the value Hello world!,
the variable $xwill 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.

Note: Unlike other programming languages, PHP has no command for declaring a variable. It is
created the moment you first assign a value to it.

Think of variables as containers for storing data.

PHP Variables
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, 0-
9, and _ )
 Variable names are case-sensitive ($age and $AGE are two different variables)

Remember that PHP variable names are case-sensitive!

Output Variables
The PHP echo statement is often used to output data to the screen.

The following example will show how to output text and a variable:

Example
<?php
$txt = "W3Schools.com";
echo "I love $txt!";
?>
Run example »

The following example will produce the same output as the example above:

Example
<?php
$txt = "W3Schools.com";
echo "I love " . $txt . "!";
?>
Run example »

The following example will output the sum of two variables:

Example
<?php
$x = 5;
$y = 4;
echo $x + $y;
?>
Run example »

Note: You will learn more about the echo statement and how to output data to the screen in the
next chapter.
PHP is a Loosely Typed 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

Global and Local Scope


A variable declared outside a function has a GLOBAL SCOPE and can only be accessed outside
a function:

Example
<?php
$x = 5; // global scope

function myTest() {
    // using x inside this function will generate an error
    echo "<p>Variable x inside function is: $x</p>";

myTest();

echo "<p>Variable x outside function is: $x</p>";


?>
Run example »
A variable declared within a function has a LOCAL SCOPE and can only be accessed within
that function:

Example
<?php
function myTest() {
    $x = 5; // local scope
    echo "<p>Variable x inside function is: $x</p>";

myTest();

// using x outside the function will generate an error


echo "<p>Variable x outside function is: $x</p>";
?>
Run example »

You can have local variables with the same name in different functions, because local variables
are only 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
?>
Run example »

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
?>
Run example »

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();
?>
Run example »

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 Data Types


PHP Data Types
Variables can store data of different types, and different data types can do
different things.

PHP supports the following data types:

 String
 Integer
 Float (floating point numbers - also called double)
 Boolean
 Array
 Object
 NULL
 Resource

PHP String
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!";
$y = 'Hello world!';

echo $x;
echo "<br>"; 
echo $y;
?>
Run example »

PHP Integer
An integer data type is a non-decimal number between -2,147,483,648 and
2,147,483,647.
Rules for integers:

 An integer must have at least one digit


 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 (16-based - prefixed with 0x) or octal (8-based - prefixed
with 0)

In the following example $x is an integer. The PHP var_dump() function


returns the data type and value:

Example
<?php 
$x = 5985;
var_dump($x);
?>
Run example »

PHP Float
A float (floating point number) is a number with a decimal point or a number
in exponential form.

In the following example $x is a float. The PHP var_dump() function returns


the data type and value:

Example
<?php 
$x = 10.365;
var_dump($x);
?>
Run example »

PHP Boolean
A Boolean represents two possible states: 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 Array
An array stores multiple values in one single variable.

In the following example $cars is an array. The PHP var_dump() function


returns the data type and value:

Example
<?php 
$cars = array("Volvo","BMW","Toyota");
var_dump($cars);
?>
Run example »

You will learn a lot more about arrays in later chapters of this tutorial.

PHP Object
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:

Example
<?php
class Car {
    function Car() {
        $this->model = "VW";
    }
}
// create an object
$herbie = new Car();

// show object properties


echo $herbie->model;
?>
Run example »

You will learn more about objects in a later chapter of this tutorial.

PHP NULL Value


Null is a special data type which can have only one value: NULL.

A variable of data type NULL is a variable that has no value assigned to it.

Tip: If a variable is created without a value, it is automatically assigned a


value of NULL.

Variables can also be emptied by setting the value to NULL:

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

PHP Resource
The special resource type is not an actual data type. It is the storing of a
reference to functions and resources external to PHP.

A common example of using the resource data type is a database call.

We will not talk about the resource type here, since it is an advanced topic.
2.3.2 Strings

PHP 5 Strings
A string is a sequence of characters, like "Hello world!".

PHP String Functions


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

Get The Length of a String


The PHP strlen() function returns the length of a string.

The example below returns the length of the string "Hello world!":

Example
<?php
echo strlen("Hello world!"); // outputs 12
?>
Run example »

The output of the code above will be: 12.

Count The Number of Words in a String


The PHP str_word_count() function counts the number of words in a string:

Example
<?php
echo str_word_count("Hello world!"); // outputs 2
?>
Run example »

The output of the code above will be: 2.

Reverse a String
The PHP strrev() function reverses a string:

Example
<?php
echo strrev("Hello world!"); // outputs !dlrow olleH
?>
Run example »

The output of the code above will be: !dlrow olleH.

Search For a Specific Text Within a String


The PHP strpos() function searches for a specific text within a string.

If a match is found, the function returns 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"); // outputs 6
?>
Run example »

The output of the code above will be: 6.

Tip: The first character position in a string is 0 (not 1).

Replace Text Within a String


The PHP str_replace() function replaces some characters with some other
characters in a string.

The example below replaces the text "world" with "Dolly":

Example
<?php
echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello
Dolly!
?>
Run example »

The output of the code above will be: Hello Dolly!

Complete PHP String Reference


For a complete reference of all string functions, go to our complete PHP
String Reference.

The PHP string reference contains description and example of use, for each
function!

2.3.5 Numbers

PHP 5 Constants
❮ Previous Next ❯

Constants are like variables except that once they are defined they cannot
be changed or undefined.

PHP Constants
A constant is an identifier (name) for a simple value. The value cannot be
changed during the script.
A valid constant name starts with a letter or underscore (no $ sign before the
constant name).

Note: Unlike variables, constants are automatically global across the entire


script.

Create a PHP Constant


To create a constant, use the define() function.

Syntax
define(name, value, case-insensitive)

Parameters:

 name: Specifies the name of the constant


 value: Specifies the value of the constant
 case-insensitive: Specifies whether the constant name should be case-
insensitive. Default is false

The example below creates a constant with a case-sensitive name:

Example
<?php
define("GREETING", "Welcome to W3Schools.com!");
echo GREETING;
?>
Run example »

The example below creates a constant with a case-insensitive name:

Example
<?php
define("GREETING", "Welcome to W3Schools.com!", true);
echo greeting;
?>
Run example »

Constants are Global


Constants are automatically global and can be used across the entire script.

The example below uses a constant inside a function, even if it is defined


outside the function:

Example
<?php
define("GREETING", "Welcome to W3Schools.com!");

function myTest() {
    echo GREETING;
}
 
myTest();
?>
Run example »

2.3.6 Construct
2.3.7 Single vs. Double Quotation Marks
2.3.8 Creating an HTML Form
2.3.9 Conditionals and Operators
2.3.10 Validating Form Data
2.3.11 Arrays

PHP 5 Arrays
❮ Previous Next ❯

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] . ".";
?>
Run example »

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 a 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), like this:

$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] . ".";
?>
Run example »

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);
?>
Run example »

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>";
}
?>
Run example »

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.";
?>
Run example »

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>";
}
?>
Run example »

Multidimensional Arrays
Multidimensional arrays will be explained in the PHP advanced section.

Complete PHP Array Reference


For a complete reference of all array functions, go to our complete PHP Array
Reference.

The reference contains a brief description, and examples of use, for each
function!

2.3.4 Loops

UNIT 2: UNDERSTANDING THE PRINCIPLES OF PHP


2.1 Basic Syntax
2.2 Sending Data to the browser
2.3 Writing comments
2.3.1 Variables in PHP
2.3.2 Strings
2.3.5 Numbers
2.3.6 Construct
2.3.7 Single vs. Double Quotation Marks
2.3.8 Creating an HTML Form

PHP 5 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>
Run example »

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>
Run example »

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.

Next, lets see how we can process PHP forms the secure way!
2.3.9 Conditionals and Operators

PHP 5 Operators
PHP Operators
Operators are used to perform operations on variables and values.

PHP divides the operators in the following groups:

 Arithmetic operators
 Assignment operators
 Comparison operators
 Increment/Decrement operators
 Logical operators
 String operators
 Array operators

PHP Arithmetic Operators


The PHP arithmetic operators are used with numeric values to perform
common arithmetical operations, such as addition, subtraction, multiplication
etc.

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

** Exponentiation $x ** $y Result of raising $x to the $y'th powe


(Introduced in PHP 5.6)

PHP Assignment Operators


The PHP assignment operators are used with numeric values 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

x=y x=y The left operand gets set to the value of the expressio
the right

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

PHP Comparison Operators


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

Operator Name Example Result

== Equal $x == $y Returns true if $x is equal to $y

=== Identical $x === $y Returns true if $x is equal to $y, and th


of the same type

!= Not equal $x != $y Returns true if $x is not equal to $y

<> Not equal $x <> $y Returns true if $x is not equal to $y


!== Not identical $x !== $y Returns true if $x is not equal to $y, or
are not of the same type

> Greater than $x > $y Returns true if $x is greater than $y

< Less than $x < $y Returns true if $x is less than $y

>= Greater than or $x >= $y Returns true if $x is greater than or equ


equal to $y

<= Less than or $x <= $y Returns true if $x is less than or equal t


equal to

PHP Increment / Decrement Operators


The PHP increment operators are used to increment a variable's value.

The PHP decrement operators are used to decrement a variable's value.

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

PHP Logical Operators


The PHP logical operators are used to combine conditional statements.

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 True if either $x or $y is true, but


both

&& 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

PHP String Operators


PHP has two operators that are specially designed for strings.
Operator Name Example Result

. Concatenation $txt1 . $txt2 Concatenation of $txt1 a


$txt2

.= Concatenation $txt1 .= $txt2 Appends $txt2 to $txt1


assignment

PHP Array Operators


The PHP array operators are used to compare arrays.

Operator Name Example Result

+ Union $x + $y Union of $x and $y

== Equality $x == $y Returns true if $x and $y have the same key


pairs

=== Identity $x === $y Returns true if $x and $y have the same key
pairs in the same order and of the same type

!= Inequality $x != $y Returns true if $x is not equal to $y

<> Inequality $x <> $y Returns true if $x is not equal to $y


!== Non-identity $x !== $y Returns true if $x is not identical to $y

PHP 5 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 conditions. You can use conditional statements in your code to do
this.

In PHP we have the following conditional statements:

 if statement - executes some code if one condition is true


 if...else statement - executes some code if a condition is true and
another code if that condition is false
 if...elseif....else statement - executes different codes for more than
two conditions
 switch statement - selects one of many blocks of code to be
executed

PHP - The if Statement


The if statement executes some code if one 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!";
}
?>
Run example »

PHP - The if...else Statement


The if....else statement executes some code if a condition is true and another
code if that 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!";
}
?>
Run example »

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


The if....elseif...else statement executes different codes for more than two
conditions.

Syntax
if (condition) {
    code to be executed if this condition is true;
} elseif (condition) {
    code to be executed if this condition is true;
} else {
    code to be executed if all conditions are 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!";
}
?>
Run example »

PHP - The switch Statement


The switch statement will be explained in the next chapter.

PHP 5 switch Statement
❮ Previous Next ❯

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 color is red!";
        break;
    case "blue":
        echo "Your favorite color is blue!";
        break;
    case "green":
        echo "Your favorite color is green!";
        break;
    default:
        echo "Your favorite color is neither red, blue, nor green!";
}
?>
Run example »

PHP 5 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;
}

$FirstAmount= 10000;
$SecondAmount= 2000;
function Amount_Of_Pay ()
{
$TotalAmount= $FirstAmount +
$SecondAmount;
}
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!

Function names are NOT case-sensitive.


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


?>
Run example »

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 separate 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 Mulengah.<br>";
}

familyName("Jani");
familyName("mumba");
familyName("Stale");
familyName("john");
familyName("Alex");
?>
Run example »

The following example has a function with two arguments ($fname and
$year):

Example
<?php
function familyName($fname, $year) {
    echo "$fname Mumba. Born in $year <br>";
}

familyName("Hege", "1975");
familyName("Stale", "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);
?>
Run example »

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);
?>
Run example »
2.3.10 Validating Form Data

PHP 5 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!

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

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:

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 fie

ld 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
client-side 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;/sc
ript&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 looks 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;
}
?>
Run example »

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 does not enter any data.

The next step is to make input fields required and create error messages if
needed.

PHP 5 Forms - Required Fields

This chapter shows 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>
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>
Run example »

The next step is to validate the input data, that is "Does the Name field
contain only letters and whitespace?", and "Does the E-mail field contain a
valid e-mail address syntax?", and if filled out, "Does the Website field
contain a valid URL?".

PHP 5 Forms - Validate E-mail and


URL
❮ Previous Next ❯

This chapter shows 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 easiest and safest way to check whether an email address is well-formed
is to use PHP's filter_var() function.

In the code below, if the e-mail address is not well-formed, then store an
error message:

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_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-z0-9+&@#\/%=~_|]/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 is well-formed
    if (!filter_var($email, FILTER_VALIDATE_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-z0-9+&@#\/
%?=~_|!:,.;]*[-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"]);
  }
}
?>
Run example »

The next step is to show how to prevent the form from emptying all the input
fields when the user submits the form.

<!DOCTYPE HTML>  
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>  

<?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 is well-formed
    if (!filter_var($email, FILTER_VALIDATE_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-z0-9+&@#\/%?=~_|!:,.;]*[-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"]);
  }
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

<h2>PHP Form Validation Example</h2>


<p><span class="error">* required field.</span></p>
<form method="post" action="<?php ech
ohtmlspecialchars($_SERVER["PHP_SELF"]);?>">  
  Name: <input type="text" name="name" value="<?php 
echo $name;?>">
  <span class="error">* <?php echo $nameErr;?
></span>
  <br><br>
  E-mail: <input type="text" name="email" value="<?
php echo $email;?>">
  <span class="error">* <?php echo $emailErr;?
></span>
  <br><br>
  Website: <input type="text" name="website" value=
"<?php echo $website;?>">
  <span class="error"><?php echo $websiteErr;?
></span>
  <br><br>
  Comment: <textarea name="comment" rows="5" cols="
40"><?php echo$comment;?></textarea>
  <br><br>
  Gender:
  <input type="radio" name="gender" <?php if 
(isset($gender) &&
$gender=="female") echo "checked";?> valu
e="female">Female
  <input type="radio" name="gender" <?php if 
(isset($gender) &&
$gender=="male") echo "checked";?> valu
e="male">Male
  <span class="error">* <?php echo $genderErr;?
></span>
  <br><br>
  <input type="submit" name="submit" value="Submit"
>  
</form>

<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>

This chapter shows how to keep the values in the input fields when the
user hits the submit button.
PHP - Keep The Values in The Form
To show the values in the input fields after the user hits the submit button,
we add a little PHP script inside the value attribute of the following input
fields: name, email, and website. In the comment textarea field, we put the
script between the <textarea> and </textarea> tags. The little script
outputs the value of the $name, $email, $website, and $comment variables. 

Then, we also need to show which radio button that was checked. For this,
we must manipulate the checked attribute (not the value attribute for radio
buttons):

Name: <input type="text" name="name" value="<?php echo $name;?>">

E-mail: <input type="text" name="email" value="<?php echo $email;?


>">

Website: <input type="text" name="website" value="<?php echo


$website;?>">

Comment: <textarea name="comment" rows="5" cols="40"><?php echo


$comment;?></textarea>

Gender:
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="female") echo "checked";?>
value="female">Female
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="male") echo "checked";?>
value="male">Male

PHP - Complete Form Example


Here is the complete code for the PHP Form Validation Example:

2.3.11 Arrays
PHP 5 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);
?>
Run example »

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);
?>
Run example »

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);
?>
Run example »

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);
?>
Run example »

Sort Array (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);
?>
Run example »

Sort Array (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);
?>
Run example »

Sort Array (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);
?>
Run example »
Sort Array (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);
?>
Run example »

Complete PHP Array Reference


For a complete reference of all array functions, go to our complete PHP Array
Reference.

The reference contains a brief description, and examples of use, for each
function!

2.3.4 Loops

PHP 5 while Loops
❮ Previous Next ❯
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 <= 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++;

?>
Run example »

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);
?>
Run example »

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 is false 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);
?>
Run example »

The for loop and the foreach loop will be explained in the next chapter.

PHP 5 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>";

?>
Run example »

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>";
}
?>
Run example »

You will learn more about arrays in a later chapter.


UNIT 3: APPLYING THE CONCEPT OF CREATING DYNAMIC WEBSITES:
3.1 Multiple Files
3.2 Handling HTML Forms

HTML Forms
HTML Form Example
First name:

Last name:
 

Try it Yourself »

The <form> Element


The HTML <form> element defines a form that is used to collect user input:

<form>
.
form elements
.
</form>

An HTML form contains form elements.

Form elements are different types of input elements, like text fields,
checkboxes, radio buttons, submit buttons, and more.
The <input> Element
The <input> element is the most important form element. 

The <input> element can be displayed in several ways, depending on


the type attribute.

Here are some examples:

Type Description

<input type="text"> Defines a one-line text input field

<input type="radio"> Defines a radio button (for selecting one of many choices)

<input type="submit"> Defines a submit button (for submitting the form)

You will learn a lot more about input types later in this tutorial.

Text Input
<input type="text"> defines a one-line input field for text input:

Example
<form>
  First name:<br>
  <input type="text" name="firstname"><br
>
  Last name:<br>
  <input type="text" name="lastname">
</form>
Try it Yourself »

This is how it will look like in a browser:

First name:

Last name:

Note: The form itself is not visible. Also note that the default width of a text
field is 20 characters.

Radio Button Input


<input type="radio"> defines a radio button.

Radio buttons let a user select ONE of a limited number of choices:

Example
<form>
  <input type="radio" name="gender" value="male" checked> 
Male<br>
  <input type="radio" name="gender" value="female"> Female
<br>
  <input type="radio" name="gender" value="other"> Other
</form>
Try it Yourself »

This is how the HTML code above will be displayed in a browser:

 Male
 Female
 Other
The Submit Button
<input type="submit"> defines a button for submitting the form data to
a form-handler.

The form-handler is typically a server page with a script for processing input
data.

The form-handler is specified in the form's action attribute:

Example
<form action="/action_page.php">
  First name:<br>
  <input type="text" name="firstname" value="Mickey"><br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse"><br><br>
  <input type="submit" value="Submit">
</form>
Try it Yourself »

This is how the HTML code above will be displayed in a browser:

First name:
 
Last name:
 

The Action Attribute


The action attribute defines the action to be performed when the form is
submitted.

Normally, the form data is sent to a web page on the server when the user
clicks on the submit button.

In the example above, the form data is sent to a page on the server called
"/action_page.php". This page contains a server-side script that handles the
form data:

<form action="/action_page.php">
If the action attribute is omitted, the action is set to the current page.

The Method Attribute


The method attribute specifies the HTTP method (GET or POST) to be used
when submitting the form data:

<form action="/action_page.php" method="get">
or:

<form action="/action_page.php" method="post">

When to Use GET?


The default method when submitting form data is GET.

However, when GET is used, the submitted form data will be visible in the
page address field:

/action_page.php?firstname=Mickey&lastname=Mouse 

Note: GET must NOT be used when sending sensitive information! GET is


best suited for short, non-sensitive, amounts of data, because it has size
limitations too.

When to Use POST?


Always use POST if the form data contains sensitive or personal information.
The POST method does not display the submitted form data in the page
address field.

POST has no size limitations, and can be used to send large amounts of data.
The Name Attribute
Each input field must have a name attribute to be submitted.

If the name attribute is omitted, the data of that input field will not be sent
at all.

This example will only submit the "Last name" input field:

Example
<form action="/action_page.php">
  First name:<br>
  <input type="text" value="Mickey"><br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse"><br><br>
  <input type="submit" value="Submit">
</form>
Try it Yourself »

Grouping Form Data with <fieldset>


The <fieldset> element is used to group related data in a form.

The <legend> element defines a caption for the <fieldset> element.

Example

<form action="/action_page.php">
  <fieldset>
    <legend>Personal information:</legend>
    First name:<br>
    <input type="text" name="firstname" value="Mickey"><br>
    Last name:<br>
    <input type="text" name="lastname" value="Mouse"><br><br>
    <input type="submit" value="Submit">
  </fieldset>
</form>
Try it Yourself »

This is how the HTML code above will be displayed in a browser:

Attribute Description

accept-charset Specifies the charset used in the submitted form (default: the page cha

action Specifies an address (url) where to submit the form (default: the subm

autocomplete Specifies if the browser should autocomplete the form (default: on).

enctype Specifies the encoding of the submitted data (default: is url-encoded).

method Specifies the HTTP method used when submitting the form (default: GE

name Specifies a name used to identify the form (for DOM usage: document.

novalidate Specifies that the browser should not validate the form.

target Specifies the target of the address in the action attribute (default: _sel

Personal information:First name:


 
Last name:
 
More Examples
Send e-mail from a form
How to send e-mail from a form.

Test Yourself with Exercises!


Exercise 1 »   Exercise 2 »   Exercise 3 »   Exercise 4 »

Here is the list of <form> attributes:

You will learn more about the form attributes in the next chapters.

3.3 Making Sticky Forms

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>
Run example »

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>
Run example »

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.

Next, lets see how we can process PHP forms the secure way!

3.4 Creating own 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!

Function names are NOT case-sensitive.

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


?>
Run example »

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 separate 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");
?>
Run example »

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("Stale", "1978");
familyName("Kai Jim", "1983");
?>
Run example »

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);
?>
Run example »

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);
?>
Run example »

You might also like