dweb programmingbm g - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/php_2p.pdf ·...

27
©2017 Politecnico di Torino 1 Introduction to databases Web programming: the PHP language D B M G Web programming The PHP language D B M G 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

Upload: others

Post on 30-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 2: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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/

Page 3: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 4: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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, ...)

Page 5: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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!

Page 6: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 7: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 8: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 9: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 10: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 11: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 12: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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"

Page 13: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 14: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 15: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 16: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 17: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 18: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 19: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 20: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 21: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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.

Page 22: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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

Page 23: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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"

Page 24: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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”>

Page 25: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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”

Page 26: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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?

Page 27: DWeb programmingBM G - polito.itdbdmg.polito.it/wordpress/wp-content/uploads/2017/05/PHP_2p.pdf · Introduction to databases Web programming: the PHP language DBMG Control structures

©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>";