COM 411 Web Dev First Note-1
COM 411 Web Dev First Note-1
Client-server architecture is a computing model that divides a system or network into two
distinct roles: the client and the server. These roles have different responsibilities and work
together to provide various services and functionalities. Here's an explanation of client-server
architecture with examples:
Scalability: Servers can handle multiple client requests simultaneously, making it easy to
scale services to accommodate more users or devices.
Centralized Management: Data and resources are typically centralized on servers,
making it easier to manage and secure them.
Distributed Processing: Complex tasks can be distributed across multiple servers,
enabling more efficient processing and resource utilization.
Client Diversity: Clients can be diverse (e.g., different types of devices and operating
systems) while still accessing server-based services.
Improved Security: Servers can implement security measures to control and monitor
access, enhancing data protection.
Client-server architecture is prevalent in various computing systems, including web applications,
database management systems, email services, online gaming, and more. It enables efficient
communication and resource sharing between clients and servers, offering a structured and
organized approach to networked computing.
Web Pages
Webpages are documents or files displayed in web browsers, typically created using HTML
(Hypertext Markup Language) and often including CSS (Cascading Style Sheets) and JavaScript
for design and interactivity. Webpages are a fundamental component of the World Wide Web, and
they are used to present information, interact with users, and provide various online services.
Here's an explanation of webpages with examples:
Components of Webpages:
HTML (Hypertext Markup Language): HTML is the core language used to structure the
content of a webpage. It consists of elements, such as headings, paragraphs, links, images,
and more, that define the page's structure.
CSS (Cascading Style Sheets): CSS is used for styling webpages, allowing web designers
to control the layout, colors, fonts, and other visual aspects of the page.
JavaScript: JavaScript is a programming language used to add interactivity and dynamic
behavior to webpages. It can be used for features like form validation, animations, and data
manipulation.
Examples of Webpages:
Informational Webpage:
Example: Wikipedia
Description: Wikipedia's webpages present information on a wide range of topics. They contain
text, images, and links, allowing users to access and learn about various subjects.
E-commerce Website:
Example: Amazon
Description: E-commerce webpages like Amazon enable users to browse and purchase products
online. These pages include product listings, images, descriptions, reviews, and shopping cart
functionality.
Social Media Profile:
Example: Facebook Profile
Description: Social media webpages display user profiles with personal information, posts,
images, and interactions with friends or followers.
News Website:
Example: CNN
Description: News websites provide up-to-date news articles, videos, and other multimedia
content, with links to navigate to different categories and stories.
Search Engine Results Page (SERP):
Example: Google Search Results
Description: A SERP webpage displays search results in response to a user's query, listing relevant
websites, images, and other information.
Blog Post:
Example: WordPress Blog Post
Description: Blog posts are webpages that contain articles, images, and comments. They are used
by individuals and organizations to share information, opinions, and news.
Web Application Dashboard:
Example: Gmail
Description: Web application dashboards provide a user interface for accessing and managing
specific services. Gmail's webpage offers email-related features like composing, sending, and
organizing messages.
Online Learning Platform:
Example: Coursera Course Page
Description: Online learning platforms host webpages for individual courses, containing video
lectures, assignments, quizzes, and discussions.
Personal Portfolio Website:
Example: Personal Portfolio of a Web Designer
Description: Personal portfolio webpages showcase the work and skills of individuals, such as web
designers or artists. They often include images, descriptions, and contact information.
Weather Forecast Page:
Example: The Weather Channel Forecast
Description: Weather forecast webpages provide real-time weather information with graphical
representations of temperature, precipitation, and more for specific locations.
Webpages play a crucial role in the dissemination of information and services on the internet. They
can vary in complexity, from simple static pages to highly interactive web applications, and are
designed to cater to different needs and user experiences.
Static And Dynamic Webpage
Static and dynamic webpages are two fundamental types of web content that differ in terms of how
they are generated and displayed to users. Here's an explanation of both types:
Static Webpages:
Static webpages are pre-generated HTML documents that remain unchanged unless manually
edited and updated by a web developer.
They do not change in response to user input or real-time data.
Characteristics:
Content is fixed and remains the same for all users.
HTML, CSS, and possibly JavaScript are used to structure and style the content.
There is no interaction or data processing on the server side.
Examples:
Brochure websites: These websites provide information about a company, product, or service and
do not require user-specific data or interactions.
Personal blogs: Blogs that display articles or posts with static content.
Landing pages: Single webpages designed for marketing purposes and containing fixed
information about a product or promotion.
Advantages:
Simplicity: Static webpages are easy to create and host.
Speed: They load quickly because the content is pre-rendered and doesn't require server-
side processing.
Disadvantages:
Limited interactivity: Static webpages cannot provide dynamic user experiences.
Manual updates: Any changes or updates to content require manual editing of the HTML
code.
Dynamic Webpages:
Dynamic webpages are generated on the server in real-time or in response to user input.
They can change based on user interactions, database queries, or other external factors.
Characteristics:
Content can vary based on user-specific data or preferences.
Server-side scripting languages (e.g., PHP, Python, Ruby) and databases (e.g., MySQL,
PostgreSQL) are used to create dynamic content.
Real-time data processing and user interaction are possible.
Examples:
Social media platforms: Platforms like Facebook, Twitter, and Instagram display real-
time feeds, notifications, and user-specific content.
E-commerce websites: Sites like Amazon or eBay update product availability, prices, and
recommendations based on user behavior and inventory status.
Web applications: Apps like Gmail, Google Maps, and online banking services provide
dynamic content and features.
Advantages:
Interactivity: Dynamic webpages can respond to user input and provide personalized
content.
Real-time updates: Information can change instantly based on changing data or user
actions.
Disadvantages:
Complexity: Developing and maintaining dynamic websites can be more complex and
require server-side programming expertise.
Slower load times: Dynamic webpages may take longer to load because they involve
server-side processing.
In summary, static webpages are simple, fixed HTML documents that do not change without
manual intervention. Dynamic webpages, on the other hand, are generated in real-time, allowing
for interactivity, user-specific content, and the display of real-time data. The choice between static
and dynamic webpages depends on the specific requirements of a website or web application.
Many modern websites and applications use a combination of both static and dynamic elements to
provide the best user experience.
PHP
PHP, which stands for "Hypertext Preprocessor," is a widely used server-side scripting language
for web development. It is primarily designed for creating dynamic web pages and web
applications, allowing developers to embed PHP code within HTML and execute it on the server
before sending the resulting HTML to the client's web browser. PHP is known for its ease of use,
flexibility, and robust community support. Here are some key aspects and uses of PHP:
Server-Side Scripting:
PHP is executed on the server, and the resulting HTML is sent to the client's browser. This means
that PHP code is not visible to the end user, enhancing security by keeping sensitive logic on the
server.
Embedding in HTML:
PHP code can be easily embedded within HTML, allowing developers to mix dynamic content
and logic with static web content. PHP code is enclosed in <?php ... ?> tags.
Database Integration:
PHP has extensive support for database integration, making it a popular choice for building
database-driven web applications. It can connect to various database management systems, such
as MySQL, PostgreSQL, and SQLite, to retrieve and manipulate data.
Server Compatibility:
PHP is compatible with various web servers, with the most common being the Apache HTTP
Server. It can also run on other web server software like Nginx and Microsoft IIS.
Open Source:
PHP is open-source, meaning it is freely available and can be modified and extended by the
community. There is an extensive collection of pre-built PHP functions and libraries available.
Cross-Platform:
PHP is cross-platform, which means it can run on different operating systems, including Windows,
Linux, macOS, and more.
Wide Adoption:
PHP has been widely adopted and is the basis for many content management systems (CMS) such
as WordPress and Joomla, as well as e-commerce platforms like Magento.
Common Uses of PHP:
Web Development: PHP is extensively used to create websites and web applications, both
small and large. It's particularly popular for building e-commerce sites, blogs, forums, and
content management systems.
User Authentication: PHP is often employed to handle user authentication and access
control, making it possible to create secure login and registration systems.
Form Processing: PHP can process form data submitted by users, validate it, and interact
with databases to store or retrieve information.
Content Management Systems (CMS): Many popular CMS platforms, including
WordPress, Drupal, and Joomla, are built using PHP, enabling users to create and manage
content for their websites.
E-commerce Websites: PHP can be used to develop and maintain online shopping
platforms, with support for product catalogs, shopping carts, and payment processing.
Data Handling: PHP is used to interact with databases, manipulate data, and generate
dynamic content, such as real-time news feeds or dynamic reports.
API Development: PHP can be used to create web APIs (Application Programming
Interfaces) for third-party integration or mobile app development.
Server-Side Scripting: PHP can be employed for server-side scripting to automate tasks,
manage server resources, and create custom server-side scripts for various purposes.
PHP is a versatile and powerful scripting language used by millions of web developers worldwide.
It continues to evolve with each new version, incorporating features and improvements to stay
relevant and efficient in modern web development.
MySQL
MySQL is a popular open-source relational database management system (RDBMS) that is
commonly used in web development to store, manage, and retrieve data. MySQL is often used in
conjunction with PHP to create dynamic web applications that require data storage and retrieval.
Here's an explanation of MySQL and its connection to PHP:
MySQL is an RDBMS, which means it organizes data in tables with rows and columns,
allowing developers to establish relationships between different data sets.
It uses Structured Query Language (SQL) for querying and managing data.
Open Source and Free: MySQL is open source and freely available, making it a cost-
effective choice for many web applications.
Scalability: MySQL is scalable, capable of handling both small-scale and large-scale
applications. It is often used in high-traffic websites and applications.
Security: MySQL offers robust security features, including user authentication and
authorization, to protect data from unauthorized access.
Performance: MySQL is known for its fast performance and efficient data retrieval and
storage mechanisms.
Connection between MySQL and PHP:
PHP and MySQL can work together to create dynamic web applications that interact with
databases. Here's how they connect:
PHP for Server-Side Scripting:
PHP is a server-side scripting language, which means it runs on the web server and
generates dynamic content on the server before sending it to the client's web browser.
PHP can process user requests, communicate with the MySQL database, and generate
HTML pages dynamically based on the retrieved data.
MySQL as the Database Backend:
MySQL is used as the database backend where data is stored and organized.
PHP scripts can connect to the MySQL database to retrieve data, insert, update, or delete
records, and perform various database operations.
Database Connectivity:
PHP provides functions and libraries for connecting to MySQL databases. The most
commonly used extension for this purpose is MySQLi (MySQL Improved) and PDO (PHP
Data Objects).
Developers can establish a connection to the MySQL database server, send SQL queries,
and retrieve the results using PHP functions and objects.
Executing SQL Queries:
PHP scripts create and execute SQL queries to interact with the MySQL database. These queries
can be simple SELECT queries to retrieve data, INSERT queries to add new records, UPDATE
queries to modify existing data, and DELETE queries to remove records.
Here is a basic example of how PHP and MySQL are connected:
<?php
if ($mysqli->connect_error) {
$result = $mysqli->query($query);
if ($result->num_rows > 0) {
} else {
$mysqli->close();
?>
In this example, PHP connects to a MySQL database, executes a SELECT query to retrieve user
data, and then processes and displays that data. This is a simple illustration of how PHP and
MySQL can work together in a web application. However, in real-world applications, you would
also implement error handling, security measures, and more complex data operations.
BASIC PHP SYNTAX
PHP is a server-side scripting language that is embedded within HTML to create dynamic web
pages. Below is the basic syntax of PHP with an example
<?php
// PHP code goes here
?>
Example of a Simple PHP Script
In this example, we have an HTML document that includes PHP code. Here's a breakdown of the
PHP elements in the example:
<?php and ?> are PHP delimiters. They mark the beginning and end of PHP code.
Inside the PHP block, we have echo followed by a string. The echo statement is used to output text
to the web page. In this case, it displays the text "Today is" concatenated with the current date.
date("Y-m-d") is a PHP function that retrieves the current date in the format "Y-m-d" (year, month,
day).
The result of the PHP code is embedded within an HTML <p> element, so it will be displayed as
part of the web page.
When you load this PHP script in a web browser, you will see the current date displayed on the
web page.
This is a very basic example of PHP usage, and PHP can do much more, including processing
forms, interacting with databases, and creating dynamic web applications. As you become more
familiar with PHP, you can explore its extensive capabilities for web development.
Note
With PHP you are not limited to output HTML. You can output images or PDF
files. You can also output any text, such as XHTML and XML.
Comments in PHP
A comment in PHP code is a line that is not executed as a part of the program.
Its only purpose is to be read by someone who is looking at the code.
<!DOCTYPE html>
<html>
<body>
<?php
// This is a single-line comment
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<?php
/*
This is a multiple-lines comment block
that spans over multiple
lines
*/
?>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<?php
// You can also use comments to leave out parts of a code line
$x = 5 /* + 15 */ + 5;
echo $x;
?>
</body>
</html>
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.
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.
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)
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 = "Fedponam";
echo "I love $txt!";
?>
The following example will produce the same output as the example above:
Example
<?php
$txt = "Fedponam";
echo "I love " . $txt . "!";
?>
Example
<?php
$x = 5;
$y = 4;
echo $x + $y;
?>
In PHP 7, type declarations were added. This gives an option to specify the data
type expected when declaring a function, and by enabling the strict
requirement, it will throw a "Fatal Error" on a type mismatch.
You will learn more about strict and non-strict requirements, and data type
declarations in the following chapters.
The scope of a variable is the part of the script where the variable can be
referenced/used.
local
global
static
<?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();
A variable declared within a function has a LOCAL SCOPE and can only be
accessed within that function:
Example
Variable with local scope:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
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.
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
?>
Example
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
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.
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.
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.";
?>
Display Variables
The following example shows how to output text and variables with
the echo statement:
Example
<?php
$txt1 = "Learn PHP";
$txt2 = "FEDPONAM";
$x = 5;
$y = 4;
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!";
?>
Display Variables
The following example shows how to output text and variables with
the print statement:
Example
<?php
$txt1 = "Learn PHP";
$txt2 = "FEDPONAM";
$x = 5;
$y = 4;
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;
?>
PHP Integer
An integer data type is a non-decimal number between -2,147,483,648 and
2,147,483,647.
Example
<?php
$x = 5985;
var_dump($x);
?>
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);
?>
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.
PHP Array
An array stores multiple values in one single variable.
Example
<?php
$cars = array("Volvo","BMW","Toyota");
var_dump($cars);
?>
PHP Object
Classes and objects are the two main aspects of object-oriented programming.
Let's assume we have a class named Car. A Car can have properties like model,
color, etc. We can define variables like $model, $color, and so on, to hold the
values of these properties.
When the individual objects (Volvo, BMW, Toyota, etc.) are created, they inherit
all the properties and behaviors from the class, but each object will have
different values for the properties.
If you create a __construct() function, PHP will automatically call this function
when you create an object from a class.
Example
<?php
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
public function message() {
return "My car is a " . $this->color . " " . $this->model . "!";
}
}
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.
Example
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>
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.
We will not talk about the resource type here, since it is an advanced topic.
PHP Strings
A string is a sequence of characters, like "Hello world!".
Example
Return the length of the string "Hello world!":
<?php
echo strlen("Hello world!"); // outputs 12
?>
Example
Count the number of word in the string "Hello world!":
<?php
echo str_word_count("Hello world!"); // outputs 2
?>
Example
Reverse the string "Hello world!":
<?php
echo strrev("Hello world!"); // outputs !dlrow olleH
?>
Example
Search for the text "world" in the string "Hello world!":
<?php
echo strpos("Hello world!", "world"); // outputs 6
?>
Tip: The first character position in a string is 0 (not 1).
Example
Replace the text "world" with "Dolly":
<?php
echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello
Dolly!
?>
You can search online for a complete reference of all string functions. The PHP
string reference contains description and example of use, for each function.
PHP Numbers
One thing to notice about PHP is that it provides automatic data type conversion.
So, if you assign an integer value to a variable, the type of that variable will
automatically be an integer. Then, if you assign a string to the same variable, the
type will change to a string.
PHP Integers
2, 256, -256, 10358, -179567 are all integers.
PHP has the following functions to check if the type of a variable is integer:
is_int()
is_integer() - alias of is_int()
is_long() - alias of is_int()
Example
Check if the type of a variable is integer:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHP Floats
A float is a number with a decimal point or a number in exponential form.
PHP has the following functions to check if the type of a variable is float:
is_float()
is_double() - alias of is_float()
Example
Check if the type of a variable is float:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Infinity
A numeric value that is larger than PHP_FLOAT_MAX is considered infinite.
PHP has the following functions to check if a numeric value is finite or infinite:
is_finite()
is_infinite()
However, the PHP var_dump() function returns the data type and value:
Example
Check if a numeric value is finite or infinite:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN stands for Not a Number.
is_nan()
However, the PHP var_dump() function returns the data type and value:
Example
Invalid calculation will return a NaN value:
<?php
$x = acos(8);
var_dump($x);
?>
Example
Check if the variable is numeric:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Note: From PHP 7.0: The is_numeric() function will return FALSE for numeric
strings in hexadecimal form (e.g. 0xf4c3b00c), as they are no longer considered
as numeric strings.
The (int), (integer), or intval() function are often used to convert a value to an
integer.
Example
Cast float and string to integer:
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
PHP Math
PHP has a set of math functions that allows you to perform mathematical
tasks on numbers.
PHP pi() Function
The pi() function returns the value of PI:
Example
<?php
echo(pi()); // returns 3.1415926535898
?>
Example
<?php
echo(min(0, 150, 30, 20, -8, -200)); // returns -200
echo(max(0, 150, 30, 20, -8, -200)); // returns 150
?>
Example
<?php
echo(abs(-6.7)); // returns 6.7
?>
Example
<?php
echo(round(0.60)); // returns 1
echo(round(0.49)); // returns 0
?>
Random Numbers
The rand() function generates a random number:
Example
<?php
echo(rand());
?>
To get more control over the random number, you can add the
optional min and max parameters to specify the lowest integer and the highest
integer to be returned.
For example, if you want a random integer between 10 and 100 (inclusive),
use rand(10, 100):
Example
<?php
echo(rand(10, 100));
?>
Complete PHP Math Reference
PHP Math Functions
Function Description
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.
Syntax
define(name, value, case-insensitive)
Parameters:
Example
Create a constant with a case-sensitive name:
<?php
define("GREETING", "Welcome to Fedponam");
echo GREETING;
?>
Example
Create a constant with a case-insensitive name:
<?php
define("GREETING", "Welcome to Fedponam!!", true);
echo greeting;
?>
Example
Create a constant with the const keyword:
<?php
const MYCAR = "Volvo";
echo MYCAR;
?>
Example
Create an Array constant:
<?php
define("cars", [
"Alfa Romeo",
"BMW",
"Toyota"
]);
echo cars[0];
?>
<?php
define("GREETING", "Welcome to W3Schools.com!");
function myTest() {
echo GREETING;
}
myTest();
?>
These magic constants are written with a double underscore at the start and the
end, except for the ClassName::class constant.
Magic Constants
Here are the magic constants, with descriptions and examples:
Constant Description
Note:
The magic constants are case-insensitive, meaning __LINE__ returns the same
as __line__.
PHP Operators
Operators are used to perform operations on variables and values.
Arithmetic operators
Assignment operators
Comparison operators
Increment/Decrement operators
Logical operators
String operators
Array operators
Conditional assignment operators
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.
x=y x=y The left operand gets set to the value of the
expression on 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
Syntax
if (condition) {
code to be executed if condition is true;
}
Example
Output "Have a good day!" if the current time (HOUR) is less than 20:
<?php
$t = date("H");
Syntax
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
Example
Output "Have a good day!" if the current time is less than 20, and "Have a good
night!" otherwise:
<?php
$t = date("H");
Syntax
if (condition) {
code to be executed if this condition is true;
} elseif (condition) {
code to be executed if first condition is false and this condition is
true;
} else {
code to be executed if all conditions are false;
}
Example
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!":
<?php
$t = date("H");
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;
}
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!";
}
?>
Exercise:
Create a switch statement that will output grade according to your score
PHP Loops
Often when you write code, you want the same block of code to run over and
over again a certain number of times. So, instead of adding several almost equal
code-lines in a script, we can use loops.
Loops are used to execute the same block of code again and again, as long as a
certain condition is true.
In PHP, we have the following loop types:
The while loop - Loops through a block of code as long as the specified
condition is true.
Syntax
while (condition is true) {
code to be executed;
}
Examples
The example below displays the numbers from 1 to 5:
Example
<?php
$x = 1;
while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>
Example Explained
$x = 1; - Initialize the loop counter ($x), and set the start value to 1
$x <= 5 - Continue the loop as long as $x is less than or equal to 5
$x++; - Increase the loop counter value by 1 for each iteration
Example
<?php
$x = 0;
Example Explained
$x = 0; - Initialize the loop counter ($x), and set the start value to 0
$x <= 100 - Continue the loop as long as $x is less than or equal to 100
$x+=10; - Increase the loop counter value by 10 for each iteration
Exercises:
Use the while loop to compute the sum of even numbers between 0 to 100
Syntax
do {
code to be executed;
} while (condition is true);
Examples
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);
?>
This example 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);
?>
Syntax
for (init counter; test counter; increment counter) {
code to be executed for each iteration;
}
Parameters:
Examples
The example below displays the numbers from 0 to 10:
Example
<?php
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x <br>";
}
?>
xample Explained
$x = 0; - Initialize the loop counter ($x), and set the start value to 0
$x <= 10; - Continue the loop as long as $x is less than or equal to 10
$x++ - Increase the loop counter value by 1 for each iteration
Example
<?php
for ($x = 0; $x <= 100; $x+=10) {
echo "The number is: $x <br>";
}
?>
Example Explained
$x = 0; - Initialize the loop counter ($x), and set the start value to 0
$x <= 100; - Continue the loop as long as $x is less than or equal to 100
$x+=10 - Increase the loop counter value by 10 for each iteration
Exercise
Use a for loop to compute factors of a given number
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.
Examples
The following example will output the values of the given array ($colors):
Example
<?php
$colors = array("red", "green", "blue", "yellow");
The following example will output both the keys and the values of the given
array ($age):
Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
Example
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
break;
}
echo "The number is: $x <br>";
}
?>
PHP Continue
The continue statement breaks one iteration (in the loop), if a specified condition
occurs, and continues with the next iteration in the loop.
Example
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
continue;
}
echo "The number is: $x <br>";
}
?>
Break Example
<?php
$x = 0;
PHP Functions
The real power of PHP comes from its functions.
PHP has more than 1000 built-in functions, and in addition you can create
your own custom functions.
Exercise
Select any 10 of the built in functions and clearly discuss them with example
Syntax
function functionName() {
code to be executed;
}
Tip: Give the function a name that reflects what the function does!
Example
<?php
function writeMsg() {
echo "Hello world!";
}
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");
?>
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");
?>
In PHP 7, type declarations were added. This gives us an option to specify the
expected data type when declaring a function, and by adding
the strict declaration, it will throw a "Fatal Error" if the data type mismatches.
In the following example we try to send both a number and a string to the
function without using strict:
Example
<?php
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and it will
return 10
?>
In the following example we try to send both a number and a string to the
function, but here we have added the strict declaration:
Example
<?php declare(strict_types=1); // strict requirement
Example
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
Example
<?php declare(strict_types=1); // strict requirement
function sum(int $x, int $y) {
$z = $x + $y;
return $z;
}
To declare a type for the function return, add a colon ( : ) and the type right
before the opening curly ( { )bracket when declaring the function.
In the following example we specify the return type for the function:
Example
<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
You can specify a different return type, than the argument types, but make sure
the return is the correct type:
Example
<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
Example
Use a pass-by-reference argument to update a variable:
<?php
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num;
?>
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?
An array can hold many values under a single name, and you can access the
values by referring to an index number.
array();
Example
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo count($cars);
?>
The index can be assigned automatically (index always starts at 0), like this:
$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] . ".";
?>
Example
<?php
$cars = array("Volvo", "BMW", "Toyota");
$arrlength = count($cars);
Exercise:
Output the 7th item in the $fruits array.
or:
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
Exercise:
Create an associative array containing the age of Aisha, Ahmad, Kabir and John.
However, sometimes you want to store values with more than one key. For
this, we have multidimensional arrays.
PHP - Multidimensional Arrays
A multidimensional array is an array containing one or more arrays.
PHP supports multidimensional arrays that are two, three, four, five, or more
levels deep. However, arrays more than three levels deep are hard to manage
for most people.
Volvo 22 18
BMW 15 13
Saab 5 2
Land Rover 17 15
We can store the data from the table above in a two-dimensional array, like
this:
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
Now the two-dimensional $cars array contains four arrays, and it has two
indices: row and column.
To get access to the elements of the $cars array we must point to the two
indices (row and column):
Example
<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold:
".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold:
".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold:
".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold:
".$cars[3][2].".<br>";
?>
We can also put a for loop inside another for loop to get the elements of the
$cars array (we still have to point to the two indices):
Example
<?php
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
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);
?>
Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
asort($age);
?>
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);
?>
Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
arsort($age);
?>
Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
krsort($age);
?>
Exercise:
Create an array and sort the keys in descending order
PHP Global Variables - Superglobals
Some 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.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
Super global variables are built-in variables that are always available in all
scopes.
PHP $GLOBALS
$GLOBALS 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).
The example below shows how to use the super global variable $GLOBALS:
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 from 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 Description
PHP $_REQUEST
PHP $_REQUEST is a PHP super global variable which 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>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
PHP $_POST
PHP $_POST is a PHP super global variable which is 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
the 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>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Tip: You will learn more about $_POST in the PHP Forms chapter.
PHP $_GET
PHP $_GET is a PHP super global variable which is used to collect form data
after submitting an HTML form with method="get".
<html>
<body>
</body>
</html>
When a user clicks on the link "Test $GET", the parameters "subject" and "web"
are sent to "test_get.php", and you can then access their values in
"test_get.php" with $_GET.
Example
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
PHP Regular Expressions
What is a Regular Expression?
A regular expression is a sequence of characters that forms a search pattern.
When you search for data in a text, you can use this search pattern to describe
what you are searching for.
Regular expressions can be used to perform all types of text search and text
replace operations.
Syntax
In PHP, regular expressions are strings composed of delimiters, a pattern and
optional modifiers.
$exp = "/fedponam/i";
In the example above, / is the delimiter, fedponam is the pattern that is being
searched for, and i is a modifier that makes the search case-insensitive.
The delimiter can be any character that is not a letter, number, backslash or
space. The most common delimiter is the forward slash (/), but when your
pattern contains forward slashes it is convenient to choose other delimiters such
as # or ~.
Function Description
preg_match() Returns 1 if the pattern was found in
the string and 0 if not
Using preg_match()
The preg_match() function will tell you whether a string contains matches of a
pattern.
Example
Use a regular expression to do a case-insensitive search for "w3schools" in a
string:
<?php
$str = "Visit Fedponam";
$pattern = "/fedponam/i";
echo preg_match($pattern, $str); // Outputs 1
?>
Using preg_match_all()
The preg_match_all() function will tell you how many matches were found for a
pattern in a string.
Example
Use a regular expression to do a case-insensitive count of the number of
occurrences of "ain" in a string:
<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>
Using preg_replace()
The preg_replace() function will replace all of the matches of the pattern in a
string with another string.
Example
Use a case-insensitive regular expression to replace Microsoft with W3Schools in
a string:
<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "Fedponam", $str); // Outputs "Visit
Fedponam!"
?>
Modifier Description
Expression Description
Metacharacters
Metacharacters are characters with a special meaning:
Metacharacter Description
\d Find a digit
Quantifier Description
Note: If your expression needs to search for one of the special characters you
can use a backslash ( \ ) to escape them. For example, to search for one or
more question marks you can use the following expression: $pattern = '/\?+/';
Grouping
You can use parentheses ( ) to apply quantifiers to entire patterns. They also
can be used to select parts of the pattern to be used as a match.
Example
Use grouping to search for the word "banana" by looking for ba followed by two
instances of na:
<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // Outputs 1
?>
Example
<html>
<body>
</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>
</body>
</html>
Welcome John
Your email address is [email protected]
The same result could also be achieved using the HTTP GET method:
Example
<html>
<body>
</body>
</html>
<html>
<body>
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.
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!
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.
Note: GET should NEVER be used for sending passwords or other sensitive
information!
However, because the variables are not displayed in the URL, it is not possible
to bookmark the page.
Next, lets see how we can process PHP forms the secure way!
Exercises
If the form in the white section below gets submitted, how can you, in welcome.php,
output the value from the "first name" field?
<form action="welcome.php" method="get">
First name: <input type="text" name="fname">
</form>
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:
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:
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
<input type="radio" name="gender" value="other">Other
When the form is submitted, the form data is sent with method="post".
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.
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:
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
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.
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:
<script>location.href('http://www.hacked.com')</script>
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).
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;
}
?>
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.
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"]);
}
}
?>
Example
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF
"]);?>">
</form>
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?".
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
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";
}
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"]);
}
}
?>
The next step is to show how to prevent the form from emptying all the input
fields when the user submits the form.
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):
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
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="other") echo "checked";?>
value="other">Other