Download presentation
Presentation is loading. Please wait.
Published byMarshall Stephens Modified over 9 years ago
1
PHP on a Fast Track and other web development techniques a quick introduction to web programming by Jarek Francik
2
Teaching Objectives To ensure everyone of you have at least basic understanding of server-side processing To introduce some basic PHP To demonstrate what makes a good web project (and what doesn’t)
3
What is a project? A project is a temporary endeavour undertaken to create a unique product or service
4
A project is... a defined, unique venture or undertaking, that requires the effort or activities of people who have defined roles and responsibilities within a finite life-span, time-scale or schedule using specified resources and budgets, and has specific goals or objectives to achieve to which measures of quality can be applied that brings about some change in the status quo to provide sustainable benefit to some business, organisational or individual need
5
Project Snettisham
6
Research: 50,000 birds swirling like smoke clouds Oystercatchers, godwits, knots... Snettisham RSPB Reserve in Norfolk Best time: autumn, when most birds migrate LOOK FOR MORE INFORMATION!
7
Project Snettisham Research (cont.): The flocks take to the air as the high tide races in, covering their feeding grounds. They sit out high tide and return once the tide falls Spectaculars happen only in the mornings The higher the tide the better chances to see it!
8
Project Snettisham Need a really high tide early in the morning... UK Tides (Apple Store) USE PROPER TOOLS!
11
Project Snettisham Need a really high tide early in the morning... UK Tides (Apple Store) Timetables ready on the RSPB site! USE VARIOUS SOURCES OF INFORMATION
12
Project Snettisham Need a really high tide early in the morning... UK Tides (Apple Store) Timetables ready on the RSPB site! Three days trip 17-19 Nov (to also see the Pink Footed Geese!) PLANNING IS CRUCIAL
13
Project Snettisham Need a really high tide early in the morning... UK Tides (Apple Store) Timetables ready on the RSPB site! Three days trip 17-19 Nov (to also see the Pink Footed Geese!) Accommodation! PLANNING IS CRUCIAL
15
Project Snettisham Need a really high tide early in the morning... UK Tides (Apple Store) Timetables ready on the RSPB site! Three days trip 17-19 Nov to see the Pink Footed Geese as well! Accomodation! Transport... Anything else... PLANNING IS CRUCIAL
16
What is a project? A project is a temporary endeavour undertaken to create a unique product or service Snettisham Trip is a project A trip to Winkworth Arboretum last Saturday wasn’t a project why?
17
What is a project? A project is a temporary endeavour undertaken to create a unique product or service A bespoke e-commerce solution for a company who need it is a project A novel HCI solution is a project A routine PC maintenance is not a project why?
18
What is a project? A project is a temporary endeavour undertaken to create a unique product or service A typical on-line store for a small company... hardly is a good project why?
19
PHP on a Fast Track
20
Client & Server ClientServer
21
Client & Server ClientServer
22
Client & Server ClientServer Remote File System
23
Client & Server ClientServer REQUEST: GET RESPONSE: HTML Remote File System
24
Client & Server CLIENT SIDE PROCESSING ClientServer REQUEST: GET RESPONSE: HTML Files served over the network may contain HTML, CSS, JavaScript, Flash and may be pretty much complex! Remote File System
25
Client & Server ClientServer REQUEST: GET RESPONSE: HTML Remote File System
26
Client & Server ClientServer REQUEST: GET RESPONSE: HTML Remote File System REQUEST: GET RESPONSE: HTML
27
Client & Server ClientServer REQUEST: POST RESPONSE: HTML Remote File System RESPONSE: HTML REQUEST: POST DB
28
Client & Server ClientServer REQUEST: POST RESPONSE: PHP Remote File System REQUEST: POST RESPONSE: PHP DB SERVER SIDE PROCESSING Great Hiking Shoe Perfect Company
29
Client-Side ProcessingServer-Side Processing DB
30
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
31
PHP Scripting language for web development Created by Rasmus Lerdorf 16 years ago Currently phasing out Easy to learn but time-consuming to use
32
Let’s write a shopping cart application
33
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
34
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
35
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
36
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
37
What do we need? Operating System Web Server Database Scripring Language X - Platform Appache MySQL PHP Perl DB
38
What do we need? Operating System Web Server Database Scripring Language X A M P DB
39
XAMPP http://www.apachefriends.org/en/xampp.html or google for “xampp”
40
XAMPP 1.Download and install – it’s easy 2.Run XAMPP Control Panel 3.Start Apache & MySql 4.Run in your browser: http://localhost http://localhost 5.Click Explore and go to htdocs to browse your web files 6.Use MySql Admin to setup your database with mySqlAdmin
41
phpMyAdmin
47
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)
48
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');
49
The First PHP File <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Your Cart Your Cart <?php ?> cart.php 0
50
The First PHP File <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Your Cart Your Cart <?php echo "Hello, world!"; ?> cart.php
51
Another File: Front Page <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Your Shop Your Shop Add item #1 to the cart Add item #2 to the cart Add item #3 to the cart Add item #4 to the cart Show your cart index.php 1
52
What the application should do http://localhost/cart.php?action=show http://localhost/cart.php?action=add&id=2
53
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 " DEBUG: Action to do is $action, and item id is $id. "; ?> cart.php 1
54
Make information persistent HTTP as a stateless protocol protocol with no memory of who you are Cookies Sessions Session variables $_SESSION['cart'] Name of the variable Collection of session variables
55
Make information persistent must appear in the first line (before DOCTYPE) cart.php
56
Make information persistent...... <?php $cart = $_SESSION['cart']; $action = $_GET['action']; $id = $_GET['id']; echo " DEBUG: Action to do is $action, and item id is $id. "; if ($action == 'add') { $cart = $cart. ",$id"; $_SESSION['cart'] = $cart; } echo " DEBUG: Cart is: $cart "; ?> must appear in the first line (before DOCTYPE) cart.php 2
57
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 " Your cart is empty. "; else foreach ($myitems as $i) if ($i != '') { echo " Item id: $i "; } ?> cart.php 3
58
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
59
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
60
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 " $item: £$price "; } ?> cart.php 4
61
Final Polishings cart.php: Better HTML formatting Total price of the cart calculated index.php: Connected to the database
62
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Your title here --> Your Cart <?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 " Your cart is empty. "; else { echo " "; $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 " $item £$price "; } echo " Total £ ;$total "; echo " "; } ?> [ Home Page ] cart.php
63
<!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 ?> Your Shop --> Your Shop <?php $result = mysql_query("SELECT * FROM goods"); while ($row = mysql_fetch_array($result)) { $id = $row['id']; $item = $row['item']; $price = $row['price']; echo " "; echo " $item "; echo " £$price "; echo " add to cart "; echo " "; }; mysql_free_result($result); ?> Show your cart index.php
64
Other Possible Options PHP... ???
65
Other Possible Options PHP ASP.NET Java Python Perl Ruby on Rails So, which way to go?
66
The goal of this lecture is to show that PHP is rarely a good choice!
67
Online Store Created with Ruby on Rails watch at: http://vimeo.com/30927971 http://vimeo.com/30927971
68
How to do a good web project? How to avoid a bad web project? PHP is still popular for some simple tasks There are some really powerful frameworks written in PHP – e.g. Magento (Open Source) PHP is now 17 years old! (1995 - 2012) consider something newer!
69
How to do a good web project? How to avoid a bad web project? Writing a web app from scratch is anachronism! ?
70
How to do a good web project? How to avoid a bad web project? Writing a web app from scratch is anachronism! Research – use various sources of information Use proper, modern tools Planning is crucial Wherever possible, build on top of something other people did
71
How to do a good web project? How to avoid a bad web project? On-Line Store: a bespoke solution in PHP – from scratch a bespoke solution in Rails – from scratch, but with substantial support from the framework open source solution: Magento (as ) hosted solutions: Shopify, Volusion build something exciting on top of available systems
72
So what to choose? Your project should be based on what you learned during the course It doesn’t mean you must not learn anything new! Use your experience, do a research, READ, be brave! Try to do something unique
73
THE END
74
How to use studentnet
75
Your personal website is http://studentnet.kingston.ac.uk/~k01234567 (provide your correct k-number) http://studentnet.kingston.ac.uk/~k01234567 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)
76
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). http://studentnet.kingston.ac.uk 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
77
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.