+ All Categories
Home > Documents > PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in...

PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in...

Date post: 13-Dec-2015
Category:
Upload: nathaniel-kristian-newton
View: 215 times
Download: 1 times
Share this document with a friend
Popular Tags:
54
PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012
Transcript
Page 1: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

PHP on a Fast Tracka quick introduction to PHP programmingby Jarek Franciklast time updated in 2012

Page 2: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

Page 3: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

Page 4: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

Remote File System

Page 5: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

REQUEST: GET

RESPONSE: HTML

Remote File System

Page 6: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

CLIENT SIDE PROCESSING

Client Server

REQUEST: GET

RESPONSE: HTML

Files served over the network may contain HTML, CSS, JavaScript,Flash and may be pretty much complex!

Remote File System

Page 7: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

REQUEST: GET

RESPONSE: HTML

Remote File System

Page 8: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

REQUEST: GET

RESPONSE: HTML

Remote File SystemREQUEST: GETRESPONSE: HTML

Page 9: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

REQUEST: POST

RESPONSE: HTML

Remote File SystemRESPONSE: HTML

REQUEST: POST

DB

Page 10: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client & Server

Client Server

REQUEST: POST

RESPONSE: PHP

Remote File SystemREQUEST: POSTRESPONSE: PHP

DB

SERVER SIDE PROCESSING

Great Hiking ShoePerfect Company

Page 11: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client-Side Processing Server-Side Processing

DB

Page 12: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Client-Side Processing• Executed locally, on client’s

computer• Results visible immediately

• Fast & dynamic• Processing within a single

webpage• Information cannot be shared• No Databases*• Keeping things secret is very

difficult – everything is on the user’s computer* Limited local database functionality is available in HTML5, but without sharing

Server-Side Processing• Executed remotely, on

a web server• Results must be sent over the

network• Network latency• Pages must be re-loaded in

order to view the results*• Information easily shared• Database back-end• Flexible and powerful security

control * AJAX technology allows for remote updates without pages being reloaded but technically it is a combination of server side and client side technologies

Page 13: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

PHP

• Scripting language for web development• Created by Rasmus Lerdorf 16 years ago• Currently phasing out• Easy to learn but time-consuming to use

Page 14: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Let’s writea shopping cart application

Page 15: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What do we need?

• Operating System• Web Server• Database• Scripring Language

Windows, Linux, MacOS...Appache, IIS, WEBrick...MySQL, Postgres, SQLite, Oracle...PHP, Perl, Python, Ruby, C#, Java...

DB

Page 16: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What do we need?

• Operating System• Web Server• Database• Scripring Language

Windows, Linux, MacOS...Appache, IIS, WEBrick...MySQL, Postgres, SQLite, Oracle...PHP, Perl, Python, Ruby, C#, Java...

DB

Page 17: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What do we need?

• Operating System• Web Server• Database• Scripring Language

Linux, Windows, MacOS...Appache, IIS, WEBrick...MySQL, Postgres, SQLite, Oracle...PHP, Perl, Python, Ruby, C#, Java...

DB

Page 18: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What do we need?

• Operating System• Web Server• Database• Scripring Language

MacOS, Windows, Linux...Appache, IIS, WEBrick...MySQL, Postgres, SQLite, Oracle...PHP, Perl, Python, Ruby, C#, Java...

DB

Page 19: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What do we need?

• Operating System• Web Server• Database• Scripring Language

X - PlatformAppacheMySQL PHP Perl

DB

Page 20: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What do we need?

• Operating System• Web Server• Database• Scripring Language

XAM P P

DB

Page 21: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

XAMPP

http://www.apachefriends.org/en/xampp.html

or google for “xampp”

Page 22: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

KU Server

• There is a web server available for you at

http://studentnet.kingston.ac.uk

• Find all details there (or check the end of this presentation)

Page 23: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

XAMPP

1. Download and install – it’s easy2. Run XAMPP Control Panel3. Start Apache & MySql4. Run in your browser:

http://localhost5. Click Explore and go

to htdocs to browseyour web files

6. Use MySql Admin tosetup your databasewith mySqlAdmin

Page 24: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

phpMyAdmin

Page 25: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

phpMyAdmin

Page 26: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

phpMyAdmin

Page 27: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

phpMyAdmin

Page 28: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

phpMyAdmin

Page 29: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

phpMyAdmin

Page 30: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Database structure (SQL)USE test; CREATE TABLE goods ( id int(6) unsigned NOT NULL auto_increment, item varchar(100) NOT NULL default '', price decimal(6,2) NOT NULL default '0.00', image varchar(100) NOT NULL default '', PRIMARY KEY (id) );

INSERT INTO goods VALUES (1, 'Soap', '4.99'); INSERT INTO goods VALUES (2, 'Strawberry Jam', '1.99'); INSERT INTO goods VALUES (3, 'Toothpaste', '2.49'); INSERT INTO goods VALUES (4, '8GB Memory Stick', '22.99');

Page 31: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

The First PHP File<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head>

<title>Your Cart</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head> <body> <h1>Your Cart</h1> <?php

?></body></html>

cart.php0

Page 32: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

The First PHP File<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head>

<title>Your Cart</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head> <body> <h1>Your Cart</h1> <?php echo "Hello, world!"; ?></body></html>

cart.php

Page 33: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Another File: Front Page<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head>

<title>Your Shop</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head><body> <h1>Your Shop</h1> <ul> <li><a href="cart.php?action=add&id=1">Add item #1 to the cart</a></li> <li><a href="cart.php?action=add&id=2">Add item #2 to the cart</a></li> <li><a href="cart.php?action=add&id=3">Add item #3 to the cart</a></li> <li><a href="cart.php?action=add&id=4">Add item #4 to the cart</a></li> </ul> <p><a href="cart.php?action=show">Show your cart</a></p></body></html>

index.php1

Page 34: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What the application should do

• http://localhost/cart.php?action=show• http://localhost/cart.php?action=add&id=2

Page 35: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

What the application should do

• http://localhost/cart.php?action=show• http://localhost/cart.php?action=add&id=2

<?php $action = $_GET['action']; $id = $_GET['id']; echo "<p>DEBUG: Action to do is $action, and item id is $id.</p>";?>

cart.php1

Page 36: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Make information persistent

• HTTP as a stateless protocolprotocol with no memory of who you are

• Cookies• Sessions• Session variables

$_SESSION['cart']

Name of the variable

Collection of session variables

Page 37: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Make information persistent<?php session_start(); ?> must appear in the

first line (before DOCTYPE)

cart.php

Page 38: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Make information persistent<?php session_start(); ?>

......

<?php $cart = $_SESSION['cart']; $action = $_GET['action']; $id = $_GET['id'];

echo "<p>DEBUG: Action to do is $action, and item id is $id.</p>"; if ($action == 'add') { $cart = $cart . ",$id"; $_SESSION['cart'] = $cart; } echo "<p>DEBUG: Cart is: $cart</p>";?>

must appear in the first line (before

DOCTYPE)

cart.php2

Page 39: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Display Your Cart<?php $cart = $_SESSION['cart']; $action = $_GET['action']; $id = $_GET['id'];

if ($action == 'add') { $cart = $cart . ",$id"; $_SESSION['cart'] = $cart; } $myitems = explode(',', $cart); // explode using comma as a separator if (count($myitems) <= 1) echo "<p>Your cart is empty.<p>"; else foreach ($myitems as $i) if ($i != '') { echo "<p>Item id: $i</p>"; }?>

cart.php3

Page 40: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Connect to the Database<?php $hostname = 'localhost'; // localhost is the URL of the server $username = 'root'; // the username in this example is root $password = 'elvis'; // put here your MySQL root password // connect to the database server $con = mysql_connect($hostname, $username, $password) or die ('Could not connect: ' . mysql_error()); // display if connection failed mysql_select_db("test", $con); // choose the test database ...

cart.php

Page 41: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Connect to the Database<?php $hostname = 'localhost'; // localhost is the URL of the server $username = 'root'; // the username in this example is root $password = 'elvis'; // put here your MySQL root password // connect to the database server $con = mysql_connect($hostname, $username, $password) or die ('Could not connect: ' . mysql_error()); // display if connection failed mysql_select_db("test", $con); // choose the test database ...

Provide the proper username & password

(the latter maybe ‘’)

cart.php

Page 42: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Display Your Items.... foreach ($myitems as $i) if ($i != '') { $result = mysql_query("SELECT * FROM goods WHERE id = $i"); $row = mysql_fetch_array($result); $item = $row['item']; $price = $row['price']; echo "<p>$item: &pound;$price</p>"; }?>

cart.php4

Page 43: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Final Polishings

cart.php:• Better HTML formatting• Total price of the cart calculated

index.php:• Connected to the database

Page 44: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

<?php session_start(); ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head>

<title>Your title here</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><!--<link rel="stylesheet" type="text/css" href="style.css" />-->

</head> <body> <h1>Your Cart</h1><?php $hostname = 'localhost'; // localhost is the URL of the server $username = 'root'; // the username in this example is root $password = 'elvis'; // put here your MySQL root password // connect to the database server $con = mysql_connect($hostname, $username, $password) or die ('Could not connect: ' . mysql_error()); // display if failed mysql_select_db("test", $con); // choose the test database $cart = $_SESSION['cart']; $action = $_GET['action']; $id = $_GET['id']; if ($action == 'add') { $cart = $cart . ",$id"; $_SESSION['cart'] = $cart; }

$myitems = explode(',', $cart); // explode using comma as a separator

if (count($myitems) <= 1) echo "<p>Your cart is empty.<p>"; else { echo "<table>"; $total = 0; foreach ($myitems as $i) if ($i != '') { $result = mysql_query("SELECT * FROM goods WHERE id = $i"); $row = mysql_fetch_array($result); $item = $row['item']; $price = $row['price']; $total += $price; echo "<tr><td>$item</td><td>&pound;$price</td></tr>"; } echo

"<tr><td><strong>Total</strong></td><td><strong>&pound;$total</strong></td>";

echo "</tr></table>"; }?><p>[<a href="index.php">Home Page</a>]</p> </body></html>

cart.php

Page 45: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<?php $hostname = 'localhost'; // localhost is the URL of the server $username = 'root'; // the username in this example is root $password = 'elvis'; // put here your MySQL root password // connect to the database server $con = mysql_connect($hostname, $username, $password) or die ('Could not connect: ' . mysql_error()); // display if failed mysql_select_db("test", $con); // choose the test database ?> <html> <head> <title>Your Shop</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--<link rel="stylesheet" type="text/css" href="style.css" />--> </head>

<body> <h1>Your Shop</h1> <table> <?php

$result = mysql_query("SELECT * FROM goods");while ($row = mysql_fetch_array($result)){

$id = $row['id']; $item = $row['item']; $price = $row['price']; echo "<tr>";echo "<td>$item</td>";echo "<td>&pound;$price</td>";echo "<td><a href=\"cart.php?

action=add&id=$id\">add to cart</a></td>";echo "</tr>";

};mysql_free_result($result);

?> </table> <p><a href="cart.php?action=show">Show your

cart</a></p> </body></html>

index.php

Page 46: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Other Possible Options

• PHP• ... ???

Page 47: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Other Possible Options

• PHP• ASP.NET• Java• Python• Perl• Ruby on Rails

So, which way to go?

Page 48: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

actually, PHPis rarely a good choice!

Page 49: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

THE END

Page 50: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

How to use studentnet

Page 51: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

How to use studentnet

• Your personal website is http://studentnet.kingston.ac.uk/~k01234567(provide your correct k-number)

• To upload files, you will need a FTP client program to send your files to the server.

Here are configuration settings for Filezilla:– Host: studentnet.kingston.ac.uk– Protocol: SFTP– User: k01234567 (your normal k number)– Password: ******** (your normal password)

Page 52: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

How to use studentnet• To configure your database:

go to Database Management Tool (link available at the main page http://studentnet.kingston.ac.uk, login with your standard KU knumber and password).

• First time, you will be asked to configure the name of your database and the password – remember them!

• You will then be able to Manage Database. Use your KU k-number and the database password (you created it in the previous point).

• You will find yourself in phpMyAdmin. Use it to create faces table and populate it with data, exactly the same as we did it with XAMPP

Page 53: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

How to use studentnet

• Before uploading your application you have to setup the connection for the new server – see the example below (do it for each PHP file that connects to the DB):

$hostname = 'studentnet.kingston.ac.uk'; // URL of the server $username = ‘k01234567'; // replace with your real username$password = ‘elvis'; // your MySQL database password should go here // connect to the database server $con = mysql_connect($hostname, $username, $password) or die ('Could not connect: ' . mysql_error()); // display if connection failed mysql_select_db("db_k01234567", $con); // replace with your real db name

Page 54: PHP on a Fast Track a quick introduction to PHP programming by Jarek Francik last time updated in 2012.

Recommended