Introduction to web development and...

42
Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc. Slide 1 Chapter 1 Introduction to web development and PHP

Transcript of Introduction to web development and...

Page 1: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 1

Chapter 1

Introduction to web development

and PHP

Page 2: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 2

The architecture of a web application

Web Server Database Server

E-mail Server

The Internet

`

Client

`

Client

Page 3: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 3

The architecture of the Internet

LAN LANLAN LAN

LAN

LAN

LANLANLANLAN

LAN

LANWAN WAN

WAN WAN

IXPIXP

IXP

` `

`

`

` `

`

`

`

` ` ` ` ` `

`

`

``

` `

`

`

```` ` `

Page 4: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 4

How static web pages are processed

HTTP request

HTTP responseHTML

file

Web Server

`

Web Browser

Page 5: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 5

How dynamic web pages are processed with PHP

Web Server

PHPScript

Database Server

HTTP request

HTTP response`

Web Browser

Page 6: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 6

Web browsers • Internet Explorer • Firefox • Safari • Opera • Chrome

Web servers • Apache • IIS (Microsoft’s Internet Information Services)

Page 7: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 7

Server-side languages • PHP • JSP • ASP.NET • Perl • Python

Database servers • MySQL • Oracle • DB2 • MS SQL Server

Page 8: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 8

Highlights in the history of PHP Version Year Description 2 1995 Personal Home Page. 3 1998 PHP: Hypertext Processor 4 2000 Introduced the Zend Engine 5 2004 Introduced the Zend Engine II.

Improved support for OOP Added the PHP Data Objects extension

Page 9: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 9

Highlights in the history of MySQL Version Year Description 3.23 1995 The original version of MySQL 4.0 2003 Introduced support for unions. 4.1 2004 Introduced support for subqueries

and prepared statements. 5.0 2005 Introduced support for stored

procedures, triggers, views, and transactions.

5.1 2008 Introduced support for row-based replication and server log tables.

Page 10: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 10

MySQL notes • MySQL is owned and sponsored by MySQL AB, a for-profit

firm. • In 2008, Sun Microsystems acquired MySQL AB. • In 2009, Oracle Corporation acquired Sun Microsystems. • In 2009, many of the original developers of MySQL left MySQL

AB and begin working on different forks of the open-source code. One of the most popular of these forks is MariaDB.

Page 11: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 11

The first page of an application (index.html)

Page 12: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 12

The second page (display_discount.php)

Page 13: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 13

The HTML file (index.html) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Product Discount Calculator</title> <link rel="stylesheet" type="text/css" href="main.css" /> </head> <body> <div id="content"> <h1>Product Discount Calculator</h1> <form action="display_discount.php" method="post"> <div id="data"> <label>Product Description:</label> <input type="text" name="product_description"/> <br />

Page 14: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 14

The HTML file (index.html) (continued) <label>List Price:</label> <input type="text" name="list_price"/><br /> <label>Discount Percent:</label> <input type="text" name="discount_percent"/>%<br /> </div> <div id="buttons"> <label>&nbsp;</label> <input type="submit" value="Calculate Discount" /> <br /> </div> </form> </div> </body> </html>

Page 15: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 15

The CSS file (main.css) body { font-family: Arial, Helvetica, sans-serif; } #content { width: 450px; margin: 0 auto; padding: 0px 20px 20px; background: white; border: 2px solid navy; } h1 { color: navy; } label { width: 10em; padding-right: 1em; float: left; }

Page 16: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 16

The CSS file (main.css) (continued) #data input { float: left; width: 15em; margin-bottom: .5em; } #buttons input { float: left; margin-bottom: .5em; } br { clear: left; }

Page 17: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 17

The PHP file (display_discount.php) <?php // get the data from the form $product_description = $_POST['product_description']; $list_price = $_POST['list_price']; $discount_percent = $_POST['discount_percent']; // calculate the discount $discount = $list_price * $discount_percent * .01; $discount_price = $list_price - $discount; // apply formatting to the dollar and percent amounts $list_price_formatted = "$".number_format($list_price, 2); $discount_percent_formatted = $discount_percent."%"; $discount_formatted = "$".number_format($discount, 2); $discount_price_formatted = "$".number_format($discount_price, 2); ?>

Page 18: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 18

The PHP file (display_discount.php) (continued) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional ...> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Product Discount Calculator</title> <link rel="stylesheet" type="text/css" href="main.css"/> </head> <body> <div id="content"> <h1>Product Discount Calculator</h1> <label>Product Description:</label> <span><?php echo $product_description; ?> </span><br /> <label>List Price:</label> <span><?php echo $list_price_formatted; ?> </span><br />

Page 19: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 19

The PHP file (display_discount.php) (continued) <label>Standard Discount:</label> <span><?php echo $discount_percent_formatted; ?> </span><br /> <label>Discount Amount:</label> <span><?php echo $discount_formatted; ?> </span><br /> <label>Discount Price:</label> <span><?php echo $discount_price_formatted; ?> </span><br /> </div> </body> </html>

Page 20: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 20

Notepad++ with three tabs open

Page 21: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 21

How to open files in Notepad++ • Use the Open button in the toolbar. • Right-click on the file in the Windows Explorer and select Edit

with Notepad++.

How to save the current file • Use the Save button in the toolbar. • Press Ctrl+S.

How to save all open files • Use the Save All button.

Page 22: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 22

How to close the current file in Notepad++ • Use the Close button in the toolbar.

How to close all open files • Use the Close All button.

How to open a new file in a new tab • Use the New button in the toolbar.

Page 23: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 23

How to change the Notepad++ style for comments • Start the SettingsàStyler Configurator command. • Select PHP in the language list and COMMENT in the style list. • Change the font name and font size in the drop-down lists to the

blank entries at the top of the lists. • Repeat this for COMMENTLINE for the PHP language, for

COMMENT for the HTML language, and for COMMENT for the CSS language.

Page 24: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 24

The directories for a PHP app on a local server

xampphtdocs (the document root directory)

guitar_store (the application root directory)

catalogstyles

admin

index.phpimages

Page 25: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 25

The structure for the book apps and ex_starts xampp

htdocsbook_apps

ch02_product_discountch02_future_value

ch01_product_discount

ex_startsch02_ex1ch02_ex2

ch04_product_listch04_product_manager...

ch04_ex1...

Page 26: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 26

How to deploy a PHP application on a local server • Copy all of the directories and files for an application to the

\xampp\htdocs directory on the server.

How to deploy the downloadable applications on a local server • Copy the book_apps and ex_starts directories and all their

contents to the \xampp\htdocs directory on the server.

How to deploy an application on an Internet server • Use an FTP (File Transfer Protocol) program to upload the tested

directories and files to the htdocs directory of the Apache web server.

Page 27: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 27

The components of an HTTP URL

http://www.murach.com/books/lists.htm

protocol domain name path filename

What happens if you omit parts of a URL • If you omit the protocol, the default of http:// will be used. • If you omit the filename, one of the default filenames for the

Apache web server will be used: index.htm, index.html, or index.php.

• If you omit the filename and there is no default file, Apache will display an index of the files and directories in the path.

Page 28: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 28

URLs for pages on an Internet web server A request for a specific page http://www.murach.com/books/xhcss.htm

A request for the default (home) page of a web site http://www.murach.com/

URLs for applications on a local web server A request for the default page in an application directory http://localhost/book_apps/ch01_product_discount/

A request for a directory with no default page http://localhost/book_apps/

Page 29: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 29

An index of the apps in the book_apps directory

Page 30: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 30

The Product Discount application in Firefox

Page 31: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 31

An error displayed in Firefox

Page 32: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 32

How to test a PHP page for the first time 1. Make sure the Apache and MySQL servers are running. 2. Start a web browser and enter the URL for the application as shown

in the last figure. 3. Test the page by entering both valid and invalid data, clicking on all

links, and so on.

How to retest a PHP page after you change the source code • Click the Reload or Refresh button in the browser.

Page 33: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 33

The source code for a PHP page

Page 34: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 34

How to view the source code for a page in Firefox • Use the ViewàPage Source command.

How to view the source code for a page in IE • Use the ViewàSource command.

Page 35: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 35

NetBeans with three files in the main project open

Page 36: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 36

How to work with NetBeans projects • To open a project, use the Open Project button in the toolbar. • To start a new project, use the New Project button in the toolbar. • To close a project, right-click on the project in the Projects tab and

select the Close command from the resulting menu. • To set the main project, right-click on the project in the Projects

tab and select the Set As Main Project command from the resulting menu.

How to work with NetBeans files • To open a file, use the Projects tab to navigate to the file and

double-click the file. • To start a new file, select the project and click the New File button

in the toolbar.

Page 37: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 37

About NetBeans • NetBeans is an Integrated Development Environment (IDE) for

developing PHP applications. • NetBeans can make it easier to create, edit, and test the HTML,

CSS, and PHP files that you need for a web application.

About NetBeans projects • A NetBeans project consists of a top-level directory that contains

the subdirectories and files for an application. • When you create a NetBeans project, NetBeans adds an nbproject

subdirectory that contains the extra files that NetBeans needs for managing the project.

Mac OS X note • To enable right-clicking with Mac OS X, you can edit the system

preferences for the mouse.

Page 38: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 38

Auto-completion and error marking in NetBeans

Page 39: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 39

How to edit a PHP file with NetBeans • Use normal editing techniques as you enter PHP code. • When you see an auto-completion list, you can highlight an entry

and press the Enter key to enter it into your code or you can double-click on it.

• If you see a red error icon at the start of a line that you have entered, you should fix whatever errors the line contains before you test the application.

How to test a PHP application with NetBeans • To run the main project, click on the Run Project button in the

toolbar or press F6. • To run other projects, right-click on the project and select the Run

command. • To run a file, right-click on the file and select the Run command.

Page 40: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 40

The dialog box for starting a new project

Page 41: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 41

The dialog box for configuring a project

Page 42: Introduction to web development and PHPkinnisgosha.com/wp-content/uploads/2016/03/Chapter-01-Lecture-1.pdf · Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc Slide

Murach's PHP and MySQL, C1 © 2010, Mike Murach & Associates, Inc.

Slide 42

How to check the run configuration for a project • Right-click on a project in the Projects tab and select the

Properties command. • Then, click on Run Configuration in the Categories list and check

the Project URL.

How to import a project • Use the New Project command, but select PHP Application with

Existing Sources in the Projects list. • This will step you through the import procedure. • In the third step, you are asked to check the run configuration.

Here, you need to make sure the URL for running the project is correct.