dweb programmingbm g - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/php_2p.pdf ·...
TRANSCRIPT
©2017 Politecnico di Torino 1
Introduction to databases Web programming: the PHP language
DBMG
Web programming
The PHP language
DBMG
Our objective
Teaching you everything about PHP? Not exactly
Goal: teach you how to interact with a database via web
Access data inserted by users into HTML forms
Interact with a DBMS (MySQL in particular): connect to a database, execute a query, store the result of the query…
Access the tables returned by the DBMS
Assemble the HTML page on the browser, composed by HTML instructions and data extracted from the database
©2017 Politecnico di Torino 2
Introduction to databases Web programming: the PHP language
DBMG
Contents
Overview of the PHP language
Structure of a program
Variables and types (associative arrays)
Expressions and operators
Control structures (foreach)
Parameter acquisition from HTML forms
DBMG
What is PHP
Born in 1994
Personal Home Page, today known as PHP Hypertext Preprocessor
Created specifically for the development of dynamic webpages
Many useful resources, e.g.
http://php.html.it/guide/
http://www.web-link.it/php/
©2017 Politecnico di Torino 3
Introduction to databases Web programming: the PHP language
DBMG
Static webpages
Client Server
request message
HTML document
DBMG
Dynamic webpages
request message
program
parameters
HTML
document
program
reply
Client Server
©2017 Politecnico di Torino 4
Introduction to databases Web programming: the PHP language
DBMG
Primary goal
PHP‟s primary goal is to generate HTML code
In particular, generating HTML code by the results of an elaboration, that depend on the user input on the database contents, …
The PHP code is inserted inside the HTML code
The PHP code is executed on the Web server and the result (HTML and script result) is sent back to the browser
DBMG
Why using PHP?
Available for many platforms, different in
Hardware (Intel, Sparc, Mac, etc....)
Operative system (Linux, Unix, Windows, etc...)
Web server (Apache, IIS, IPlanet, etc...)
PHP code is “highly portable”
The PHP interpreter is Open Source
Free, wide availability of tools, support,developers, community of users
Pretty easy to learn, very simple if you already know C
Able to interact with various Database Management Systems (MySql, Postgres, Oracle, ...)
©2017 Politecnico di Torino 5
Introduction to databases Web programming: the PHP language
DBMG
First example
Text file with .php extension
// This is PHP code
Hello world!
Hello world!
DBMG
First example
If I look at the source code on the browser…
Why?
The browser shows the result of the execution of the PHP file, NOT the PHP file
Hello world!
Hello world!
©2017 Politecnico di Torino 6
Introduction to databases Web programming: the PHP language
DBMG
“Printing” strings
One of the most important (and frequent) tasks of PHP code is to create HTML code that will be displayed on the browser
echo and print constructs
Hello world! <
Hello world!
Hello world!
Hello world!
// They all produce the same output
DBMG
A quick digression: XAMPP
XAMPP is a cross-platform Apache distribution that includes:
A web server (Apache)
A database management system (MySQL/MariaDB)
PHP and Perl script interpreters
A graphical administrator of MySQL database (phpMyAdmin)
It can be used as a web-database development environment, thus making server-side scripts (e.g., PHP) and programs (e.g., DBMS, Web server) work locally
©2017 Politecnico di Torino 7
Introduction to databases Web programming: the PHP language
DBMG
A quick digression: XAMPP
XAMPP installs all necessary software for the development and deployment of a local web site
The PC becomes client and server
The Apache web server automatically creates a virtual domain (with local validity) at the localhost address (http://127.0.0.1)
Being connected to the Internet is not needed to use XAMPP
DBMG
XAMPP : DB administration
Allows to manage databases
Graphical interface
©2017 Politecnico di Torino 8
Introduction to databases Web programming: the PHP language
DBMG
Tags to include PHP code
PHP code can be insterted in any point of a HTML page
Needs to be enclosed by tags
Hello world!
Hello world!
Hello world!
// This is PHP code
// This is PHP code
// This is PHP code
DBMG
Another example
Display the current date
In a static way
And tomorrow?
In a dynamic way
Updates in real time
// dd/mm/aa format
©2017 Politecnico di Torino 9
Introduction to databases Web programming: the PHP language
DBMG
Code analysis
In a script we use
Comments: //………
Variables: $today
Operators and language constructs: echo
Functions: date()
// dd/mm/aa format
DBMG
Variables
A variable is a symbol or a name that represents a value
A variable can represent different types of value
Integer number, real number, character, …
The data type can change during the execution of the program
When a program is executed, variables are replaced by real data
The same program can elaborate different types of data sets in this way
©2017 Politecnico di Torino 10
Introduction to databases Web programming: the PHP language
DBMG
Variables
In PHP the name of variables is preceded by the dollar symbol („$‟)
PHP does not require that variables are declared before their usage
Higher flexibility with respect to other programming languages
”The result of the operation (9 * 4) is: “;
DBMG
Data types
PHP supports different data types
Boolean: true or false
Integer: decimal numbers
Float: floating point numbers
String
Array
Object
Resource
Data types don‟t need to be set by the programmer but they are automatically detected by the PHP intepreter
©2017 Politecnico di Torino 11
Introduction to databases Web programming: the PHP language
DBMG
Strings
A string is a sequence of characters, with no length limitation
Included between a couple of single or double quotes
If double quotes are used (""), the string content gets expanded (or, technically, "interpolated")
The number is
The number is 10
DBMG
Arrays
An array is a complex variable that contains a series of values, each of them characterized by a key (or index) that unambiguously identifies it
PHP supports both scalar and associative arrays
Scalar arrays identify each element with its position number in a sequence
Associative arrays identify each element with a key in an univocal way
©2017 Politecnico di Torino 12
Introduction to databases Web programming: the PHP language
DBMG
Arrays
Example of a scalar array
Example of an associative array
The key can be a string or an integer
(„white‟, „black‟, „yellow‟, „green‟, „red‟); $colors
$colors
$colors
// prints „black‟
// prints „red‟
“name”
“name”
“surname”
prints prints
DBMG
Arrays
Multidimensional arrays are possible
"name"
"surname"
"name"
"surname"
prints
"first"
"second"
"second"
©2017 Politecnico di Torino 13
Introduction to databases Web programming: the PHP language
DBMG
Arrays
Array elements can also be heterogeneous
In PHP it‟s very easy to add or remove elements of an array
"hello"
// adds an element to the first available position
// adds an element on the specified position
// Error!!! (The element does not exist)
// removes the specified element
// removes the entire array );
DBMG
Expressions and operators
Arithmetic operators
// addition
// subtraction
// multiplication
// division
// module (division remainder)
// increment $x by 4 (equivalent to $x = $x + 4)
// decrement $x by 3 (equivalent to $x = $x + 3)
// equivalent to $x = $x / 5
// equivalent to $x = $x * 4
// equivalent to $x = $x % 3
// increment by 1
// increment by 1
// decrement by 1
// decrement by 1
©2017 Politecnico di Torino 14
Introduction to databases Web programming: the PHP language
DBMG
Expressions and operators
Logical operators
Comparison operators
// logical and
// logical or
// logical xor
// logical not
// equal
// not equal
// greater
// greater or equal
// less
// less or equal
DBMG
Expressions and operators
String operations
Concatenation
Example
prints
prints prints
prints
// the value of string $a is concatenated to string $x
// equivalent
$Name
$Name
$Name
$Name
"$Name
$Surname
$Surname;
$Surname"
$Surname;
$Surname
©2017 Politecnico di Torino 15
Introduction to databases Web programming: the PHP language
DBMG
Control structures
Allow the conditional execution of parts of the program
Allow the iterative execution of parts of the program
Evaluate certain conditions
PHP control structures
if, if..else, if..elseif
switch
while, do..while
for
foreach
DBMG
Conditions
A condition is an expression that generates a boolean value (true or false)
They use comparison operators and Boolean operators
The following values are equivalent to “false”
The Boolean value false
The integer number 0 and the real number 0.0
The empty string (“”) and the “0” string
An empty array
Each other value is considered true
©2017 Politecnico di Torino 16
Introduction to databases Web programming: the PHP language
DBMG
The IF construct
If the condition expressed by the IF block is true, the piece of code is executed
?
X
A
Y
T
F
is equal to , they are
DBMG
The IF .. ELSE construct
If the condition expressed by the IF block is true, the sequence of operations follows the THEN branch, otherwise the ELSE branch
? T F
X
A
Y
B
©2017 Politecnico di Torino 17
Introduction to databases Web programming: the PHP language
DBMG
The IF .. ELSE construct
If the condition expressed by the IF block is true, the sequence of operations follows the THEN branch, otherwise the ELSE branch
is equal to , they are
echo “\$a is different from \$b. \n\$a equals \”$a\” while \$b equals \”$b\”.\n”;
DBMG
The IF .. ELSEIF construct
Allows to choose among many options
1
2 A
X
Y
B
T F
T F
C
is equal to
is greater than
is less than
©2017 Politecnico di Torino 18
Introduction to databases Web programming: the PHP language
DBMG
The switch construct
Allows to predict different possible values for an expression and to execute specific code according to the value
Replaces a series of IF
break: forces the exit from the switch block
default: is optional
($name)
„Luke‟:
„George‟:
„Frank‟:
“Hello, my old friend!”;
“Hello,
“Nice to meet you, Paolo”;
“Welcome, whoever you are”;
DBMG
The while loop
The block of instructions inside the while gets executed until the condition stays true
It‟s possible that the cycle is never executed, in case the condition is false from the beginning
In general the block of instructions modifies the parameters used in the condition
?
X
A
Y
T F
©2017 Politecnico di Torino 19
Introduction to databases Web programming: the PHP language
DBMG
The while loop
The block of instructions inside the while gets executed until the condition stays true
DBMG
The do .. while cycle
Similar to the while, but it guarantees that the block of instructions is executed at least once
The condition is checked after the execution of the block of instructions
©2017 Politecnico di Torino 20
Introduction to databases Web programming: the PHP language
DBMG
The for cycle
Allows to repeat a block of instructions directly defining
The instructions of inizialization, executed only once upon entering the cycle
The condition, that, must be true to execute the block of instructions
The update, executed at the end of iteration
Can always be rewritten as a while loop
DBMG
The for cycle
©2017 Politecnico di Torino 21
Introduction to databases Web programming: the PHP language
DBMG
The foreach cycle
Cycle created to simplify access to arrays
Equivalent to a for cycle on the elements of an array
DBMG
The foreach cycle on associative arrays
January has 31 days.
February has 28 days.
March has 31 days.
April has 30 days.
May has 31 days.
June has 30 days.
July has 31 days.
August has 31 days.
September has 30 days.
October has 31 days.
November has 30 days.
December has 31 days.
“January” => 31,
“February” => 28,
"March” => 31,
“April” => 30,
“May” => 31,
“June” => 30,
“July” => 31,
“August” => 31,
“September” => 30,
“October” => 31,
“November” => 30,
“December” => 31);
($year as $month => $days) {
“$month has $days days.
©2017 Politecnico di Torino 22
Introduction to databases Web programming: the PHP language
DBMG
PHP and HTML forms
“form” tag with some attributes
Name: form name
Action: name of the program that will elaborate form data
Method: how parameters will be passed from the form to the program (can be "GET" or "POST")
Inside the form there are many input elements
“userData” “reponsePage.php”
DBMG
Access to form data
The destination PHP script accesses to user inserted values through some special variables calles “superglobal”: the associative arrays $_GET, $_POST and $_REQUEST
“Superglobal” variables are accessible even inside some potential functions
GET method
Values inside the query string are stored in the associative array $_GET
Each parameter of the form becomes a field of the associative array $_GET
©2017 Politecnico di Torino 23
Introduction to databases Web programming: the PHP language
DBMG
Access to form data
POST method
Each parameter of the form becomes a field of the associative array $_POST
The associative array $_REQUEST contains $_GET, $_POST and $_COOKIE
Even if it‟s not the same thing, in practice it can be used with any method, in alternative to $_GET or $_POST
DBMG
Example: GET method
"number"
"number"
"number"
Conference:
Conference:
Year: Year:
Articles:
Articles:
"year"
Insert data
"Delete" "Send"
©2017 Politecnico di Torino 24
Introduction to databases Web programming: the PHP language
DBMG
Example: GET method
File test.php
In the year 2006 you presented 2 articles to the ICSE conference.
“year”
Result
“number”
echo “In the year $year you presented $num articles to the”;
echo “$conf conference.”;
DBMG
Example: calculator
Result: 2.5
Calculator
value=“Delete”>
value=“Calculate”>
©2017 Politecnico di Torino 25
Introduction to databases Web programming: the PHP language
DBMG
Example: calculator
File calculator.php
Result
Not a number!</h3></font>‟;
Division by zero!</h3></font>‟;
// Input data checking
DBMG
Example: calculator
// Execution of the requested operation
// Visualization of the result
Result”
©2017 Politecnico di Torino 26
Introduction to databases Web programming: the PHP language
DBMG
Example: multiple choice
You know the following 3 programming languages
DBMG
Example: multiple choice
HTML form
Uses the langs[] array instead of 6 variables
“Send”
Which of the following programming languages do you know?
©2017 Politecnico di Torino 27
Introduction to databases Web programming: the PHP language
DBMG
Example: multiple choice
PHP script
The $_REQUEST ["langs"] array contains all selected values (in this case C, Perl and PHP)
You know the following 3 programming languages
$languages
$languages $value $value
echo "<p>You know the following $num programming languages<ul>";