Matthew M.

Matthew M.

Web Application Development

Slide Duration:

Table of Contents

Course Introduction

12m 13s

Intro
0:00
What Is PHP?
0:12
PHP Hypertext Preprocessor
0:13
Why Learn PHP?
1:09
Why Learn PHP?
1:10
Web Application: Educator Store
2:25
Web Application: Educator Store
2:26
Example of Web Application
3:18
PHP in the Educator Store
7:12
Dynamic Content Generation
7:22
Ease of Website Maintenance
7:55
Form Input Processing and Access to Advanced Functionality
9:00
What You Will Learn
9:36
What You Will Learn
9:37
Who Is This Course For?
10:56
Who Is This Course For?
10:57
How PHP & The Web Work

15m 32s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Client-Server Model
0:53
Client-Server Model
0:54
HTTP Protocol
2:15
Definition of Protocol
2:16
Hypertext Transfer Protocol (HTTP)
2:37
Uniform Resource Locators
3:46
Uniform Resource Locators (URLs)
3:47
Form of URLs
4:13
Accessing Webpages with URLs
5:13
Serving Webpages
6:14
Serving Webpages, Client Machine, and Server Machine
6:15
Static vs. Dynamic Webpages
8:30
Static Webpage
8:31
Dynamic Webpage
8:55
Server-Side Scripting
9:54
Server-Side Scripting
9:55
Static and Dynamic Webpage Coding Example
11:17
Static and Dynamic Webpage Coding Example
11:18
Serving Dynamic Webpages
13:07
Serving Dynamic Webpages
13:08
Setting Up Your Development Environment

33m 11s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
Development Environments
1:04
Development Environments
1:05
Our Default Development Environment: Window 7
1:54
Remote Development
4:04
Development Machine & Remote Server
4:05
Local Development
6:54
Development Machine
6:55
Software Used In This Course
9:41
Firefox Web Browser & Firebug Add-On
9:42
XAMPP
12:15
PSPAD Text Editor
13:16
XAMPP Installation
13:49
XAMPP Installation
13:50
Verify XAMPP Install
16:26
Verify XAMPP Install
16:27
localhost
19:08
localhost and 127.0.0.1 'loopback' IP Address
19:09
Document Root
21:16
Document Root and Directory Name
21:17
Document Root for Apache in XAMPP: htdocs & Example
22:13
Text Editor Spectrum
26:12
Text Editor Spectrum: Barebones to IDE
26:13
PSPad & Example
27:02
Finding Help
30:26
Web Resources
30:27
Homework Challenge
31:36
Homework Challenge
31:37
Homework Challenge (cont.)
32:38
Homework Challenge (cont.)
32:39
Your First PHP Script

12m 41s

Intro
0:00
Lesson Overview
0:19
Lesson Overview
0:20
.php To HTML
1:00
.php To HTML
1:01
PHP Delimiters
2:20
PHP Delimiters: Opening & Closing PHP Tags
2:21
'Hello, World!' Example
4:34
Echo Statement & PHP Tags
4:35
Adding Second Heading
7:34
Homework Challenge
9:56
Homework Challenge
9:57
Basic PHP Syntax

40m 24s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
PHP Delimiters
0:38
Long and Script Form
0:39
Short and ASP Style
1:33
Example
2:01
php.ini: PHP's Configuration
3:40
php.ini
3:41
Configuration Directives
3:48
Short and ASP Style: Enabled/Disabled
4:13
phpinfo()
7:58
Statements
14:28
PHP Statements
14:29
Example: PHP Statements
14:55
Comments
16:53
PHP Comments
16:55
Single-line Comments
17:37
Multi-line Comments
18:13
Example: PHP Comments
18:47
Coding Conventions
24:26
Coding Conventions
24:27
Example: PHP Coding Conventions
26:19
Homework Challenge #1
33:51
Homework Challenge #1
33:52
Homework Challenge #1 (cont.)
35:41
Homework Challenge #1 (cont.)
35:42
Homework Challenge #2
36:09
Homework Challenge #2
36:10
Homework Challenge #2 (cont.)
38:07
Homework Challenge #2 (cont.)
38:08
Variables & Numeric Data Types

16m 38s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:12
Working With Data
0:48
8 Types of Data for PHP
0:49
Identifiers
1:40
Identifiers: Definition and Example
1:41
Variables
2:47
Variables Definition
2:48
Variables Syntax
3:06
Integer Data Type
4:44
Integer Data Type
4:45
Integer Literals
5:08
Examples
5:30
Float Data Type
6:26
Float Data Type
6:27
Float Literals
7:00
Example
7:21
Example: PHP Code Declaring Variables
8:06
Example: PHP Code Declaring Variables
8:07
var_dump() Function
9:59
var_dump()
10:00
Example: Code and Output
10:30
Example: var_dump() Function
11:19
Coding Conventions: Variables
12:32
Lower Camel Case Notation
12:33
Variable Name Lengths
13:54
Homework Challenge
14:54
Homework Challenge
14:55
String Data Type

18m 6s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
String Data Type
0:29
String Data Type
0:30
Specifying String Literals
1:03
Single-Quoted Strings
1:53
Single-Quoted Strings
1:54
Escape Sequences
2:31
Escape Sequences
2:32
Example
2:46
Escape Sequences for Commonly Used Special Characters
4:32
Double-Quoted Strings
6:04
Double-Quoted Strings
6:05
Variable Interpolation
6:44
Coding Conventions: Strings
7:54
Coding Conventions: Strings
7:55
Homework Challenge
8:54
Homework Challenge
8:55
Include Files & Web Application Introduction

38m 43s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
include Statement
0:47
include Statement: Definition
0:48
Include Statement: Syntax
2:05
include Statement: Example
2:25
include Path
6:32
Absolute and Relative Path
6:34
Specified Path
7:15
Not Specified Path
7:55
Code Reuse
9:35
Code Reuse
9:36
Example
11:11
require Statement
12:56
require Statement: Definition
12:57
require Statement: Syntax
13:32
Include versus Require
13:52
Coding Conventions
16:33
Coding Conventions
16:34
Introduction to Our Web Application
20:32
Introduction to Our Web Application
20:33
Updating Web Application
21:14
Web Application Example
22:59
Homework Challenge
35:33
Homework Challenge
35:34
Homework Challenge (cont.)
37:38
Homework Challenge (cont.)
37:39
Arrays

34m

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
What is an Array?
0:42
What is an Array?
0:43
Arrays in PHP
1:44
Keys and Values
2:15
Types of Arrays
3:37
Indexed Arrays & Associative Arrays
3:38
array() Construct
6:47
Declaring Arrays
6:48
Defining Indexed Array
7:00
Defining Associative Arrays
7:43
Square Bracket Syntax
8:50
Square Bracket Syntax
8:51
Accessing Indexed Arrays
9:02
Accessing Associative Arrays
9:56
Arrays Example
10:41
Indexed Arrays Example
10:45
Associative Arrays Example
13:55
Multi-Dimensional Arrays
18:28
Multi-Dimensional Arrays
18:29
Multi-Dimensional Arrays Example
18:51
Multi-Dimensional Arrays in PHP File
20:34
Coding Conventions: Arrays
27:59
Coding Conventions: Arrays
28:00
Homework Challenge #1
29:20
Homework Challenge #1
29:21
Homework Challenge #2
30:38
Homework Challenge #2
30:39
Web Application Development

27m 38s

Intro
0:00
Versions
0:14
Version 3.0
1:23
Version 3.1
8:08
Version 3.2
11:42
Version 3.3
20:27
Homework Challenge
26:31
Homework Challenge
26:32
Script Input & The GET Method

30m 18s

Intro
0:00
Lesson Overview
0:15
Lesson Overview
0:16
Providing Input to PHP
0:39
GET Method, POST Method, and Cookies
0:40
Name/Value Pairs
1:22
GET Method
1:57
HTTP GET Method
1:58
Query String
2:52
GET Method Example
3:38
GET Method Example
3:39
Review of HTML Forms
8:16
HTML Forms
8:17
Input Control and Submitted Form
9:13
<form> Tag
10:07
<form> Tag
10:08
Method
10:34
Action
11:13
Input Control Examples
11:50
Input Control Examples
11:51
Common Input Controls
17:31
Common Input Controls
17:32
Query Strings
18:52
Query Strings
18:53
Query Strings Syntax
19:12
URL Encoding
20:01
URL Syntax
20:02
Examples
21:17
Simple Form Example
22:28
urlencode() Function
24:08
urlencode() Function
24:09
Example
25:03
urlEncoding Text Example
25:54
Simple Form Example
25:55
Homework Challenge
28:46
Homework Challenge
28:47
Accessing Form Data in PHP

32m 1s

Intro
0:00
Lesson Overview
0:17
Lesson Overview
0:18
$_GET Array
0:48
$_GET Array
0:49
Accessing the Value of a Name/Value Pair Submitted Via GET
1:04
Name Form Example
2:54
Name Form and the $_GET Array
2:55
Using Arrays with Input Controls
6:34
Using Arrays with Input Controls
6:35
Common Example
6:47
Indexed Array Form Example
8:16
Indexed Array Form Example
8:17
Associative Arrays with Input Controls
10:14
Associative Arrays with Input Controls
10:15
Associative Arrays Example
11:41
Associative Arrays Example
11:42
Echo Form Example
15:18
Echo Form Example
15:19
Outputting Arrays In String
23:42
Variable Interpolation
23:43
Outputting a Value in an Indexed Array Within a String
24:12
Simple' Syntax, 'Complex' Syntax, and 'Curly Brace' Syntax
25:00
Outputting Arrays In String Example
26:25
Outputting Arrays In String Example
26:26
Homework Challenge
29:39
Homework Challenge
29:40
Web Application Development

20m 20s

Intro
0:00
Lesson Overview
0:19
Lesson Overview
0:20
Version 3.3
0:38
Version 3.3
0:42
Version 4.0 Changelog
2:43
GET Query
2:45
Adding, Editing, and Removing
3:24
Version 4.0 Coding Example
3:55
item.php, itemID, and itemListing
4:00
Version 4.1 Changelog
10:36
Version 4.1 Changelog
10:37
Version 4.1 Coding Example
11:45
Adding Checkout and Thank You & Editing Footer and Store
11:46
Homework Challenge
18:45
Homework Challenge
18:46
Expression & Operators

31m 56s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Expressions
0:41
Expressions Definition
0:42
Example: Literals
0:55
Example: Variables
1:05
Operators
1:44
Operators Definition
1:45
Unary, Binary, and Ternary Operators
2:07
Assignment Operators
2:52
Assignment Operators
2:53
Array Assignment Operator
3:47
Arithmetic Operators
6:15
Operators for Common Arithmetic Operations
6:16
Modulus Operator
7:41
Arithmetic Operators Example
8:25
Increment/Decrement Operators
10:48
Increment/Decrement Operators
10:49
Pre- and Post- Increment/Decrement
12:43
Coding Example
15:14
Combined Assignment Operators
16:44
Combined Assignment Operators
16:45
Combined Assignment Operators Examples
18:23
Coding Example
19:39
String Operators
20:28
Concatenation Operator, String Variables, and String Literals
20:29
String Operators Example
22:41
Precedence & Associativity
23:40
Precedence & Associativity
23:41
Expression Containing Multiple Operations
23:58
Expression Containing Two Operations of Equal Precedence
25:55
Using Parentheses to Force Precedence
26:52
Precedence & Associativity Review
28:57
Homework Challenge
31:08
Homework Challenge
31:09
Web Application Development

20m 51s

Intro
0:00
Lesson Overview
0:15
Lesson Overview
0:16
Version 4.1 Review
0:33
Version 4.1 Review
0:34
Version 5.0 Changelog
1:05
Version 5.0 Changelog
1:06
Version 5.0 Example
2:19
Adding View Cart & Editing Checkout, Footer and Store
2:20
Version 5.1 Changelog
15:36
Version 5.1 Changelog
15:37
Version 5.1 Coding Example
17:33
Forwarding Order Total to Thank You Page
17:34
Homework Challenge
20:09
Homework Challenge
20:10
Boolean & Null Data Types

20m 11s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Boolean Data Type
0:38
Boolean Data Type
0:39
Two Boolean Literals
1:24
Boolean Example
1:50
Boolean Example
1:51
Comparison Operators
4:00
Comparison Operators Definition
4:01
Common Comparison Operators
4:40
Comparison Operators Example
6:49
Comparison Operators (Cont.)
10:10
Identical and Not Identical
10:11
Example: Identical and Not Identical
11:24
Null Data Type
13:36
Null Data Type Definition
13:37
Null Literal
14:08
Variable and Null Data Type
14:30
'==' Operator
15:24
Null Data Type Example
15:59
Coding Convention
18:41
Coding Convention
18:42
Homework Challenge
19:17
Homework Challenge
19:18
Type Casting

22m 41s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Type Juggling
0:54
Type Juggling
0:55
Automatic Conversion
2:23
Type Casting
3:53
Type Casting
3:54
Implicit and Explicit Type Casting
4:00
Explicitly 'cast' a Variable Example
4:16
Type Casting (cont.)
6:48
PHP Allows the Following Explicit Type Casts
6:49
The settype () Function
8:18
Type Casting Coding Example
9:00
Explicit Type Casts
9:01
String Conversions
14:52
String Conversions
15:05
Common Conversions to String
15:55
Numeric Conversions
18:18
Numeric Conversions
18:19
Boolean Conversions
20:29
Boolean Conversions
20:30
Homework Challenge
21:38
Homework Challenge
21:39
Introduction to Functions

52m 20s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
What are Functions?
0:51
Definition of Faction
0:52
PHP and Function Call
1:53
Function Calls
2:42
Function Calls
2:43
Function Arguments
3:17
Return Values
4:56
Return Values
4:57
Function Chaining
6:29
Function Chaining
6:30
PHP.net Function Reference
8:23
PHP.net & Function Prototypes
8:24
PHP.net Function Reference Example
9:29
Optional Function Arguments
12:28
Optional Function Arguments
12:29
String Functions
14:57
strtoupper() and strtolower()
14:58
implode (), str_replace(), explode(), strpos(), substr(), and strlen()
18:31
Array Functions
25:48
count()
25:49
in_array() and array_key_exists()
26:06
sort() and ksort()
26:37
Example: count() and in_array()
27:50
Example: array_key_exists()
29:53
Example: sort() and ksort()
31:20
Date & Time Functions
33:38
date() and time()
33:39
getdate()
34:49
mktime()
35:01
Date & Time Functions
35:12
Example: date() and time()
35:58
Example: getdate()
42:15
Example: mktime()
43:15
Homework Challenge #1
44:31
Homework Challenge #1
44:32
Homework Challenge #1 (Cont.)
45:28
Homework Challenge #1 (Cont.)
45:29
Homework Challenge #2
46:34
Homework Challenge #2
46:34
Homework Challenge #2 (Cont.)
48:06
Homework Challenge #2 (Cont.)
48:07
Homework Challenge #2 (Cont.)
49:17
Homework Challenge #2 (Cont.)
49:18
Homework Challenge #3
50:08
Homework Challenge #3
50:09
Constants

19m 24s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Constants vs. Variables
0:55
Constants vs. Variables
0:56
Constant Identifiers
2:28
Constant Identifiers Definition and Examples
2:29
Declaring Constants
3:47
Two Ways of Declaring Constants
3:48
Syntaxes
4:10
Major Difference in the Two Forms
4:48
Using Constants Example
6:25
Using Constants Example
6:26
Coding Conventions
11:08
Constant Names
11:09
define () Function
11:42
Meaningful Names
12:00
$_SERVER Superglobal
12:23
$_SERVER
12:24
$_SERVER ['DOCUMENT_ROOT']
13:15
$_SERVER Superglobal Example
13:52
Homework Challenge
17:40
Homework Challenge
17:41
Web Application Development

26m 29s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Version 6.0
1:13
Version 6.0 & Version 5.1 Review
1:14
Version 6.0 Changelog
11:24
Version 6.0 Changelog
11:25
Version 6.1 Changelog
12:00
Version 6.1 Changelog
12:01
Version 6.1 Coding Example
12:42
Version 6.1 Coding Example
12:43
Version 6.2 Changelog
15:18
Version 6.2 Changelog
15:19
Version 6.2 Coding Example
18:19
Version 6.2 Coding Example
18:20
Homework Challenge
25:24
Homework Challenge
25:25
Conditional Control Structures

18m 58s

Intro
0:00
Lesson Overview
0:26
Lesson Overview
0:27
Statement Groups
0:57
Statement Groups
0:58
Example
1:10
Conditional Control Structures
1:38
Conditional Control Structures
1:39
PHP Control Structures
1:56
if Statement
2:32
if Statement
2:33
if Statement (cont.)
3:49
if Statement Coding Example
3:50
else Statement
7:26
else Statement
7:27
if/else Statement Coding Example
8:50
isset() Construct
9:59
isset() Construct
10:00
isset() Construct Coding Example
12:00
Coding Conventions
15:13
Coding Conventions
15:14
Coding Conventions (Cont.)
16:39
Coding Conventions (Cont.)
16:40
Homework Challenge
17:25
Homework Challenge
17:26
Error Handling

19m 8s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Error Handling in PHP
0:41
Error Handling in PHP
0:42
Coding Example
1:45
error_reporting() Function
7:02
error_reporting() Function
7:03
Coding Example
8:04
Additional Error Directives
9:02
display_errors
9:13
log_errors
9:37
error_log
9:50
track_errors
10:12
Coding Examples
10:29
Error Control Operator
13:38
Error Control Operator & Coding Example
13:39
Homework Challenge
16:19
Homework Challenge
16:20
Homework Challenge (cont.)
17:58
Homework Challenge (cont.)
17:59
Logical & Ternary Operators

23m 22s

Intro
0:00
Lesson Overview
0:17
Lesson Overview
0:18
Logical Operators
0:49
Logical Operators Definition
0:50
NOT (!)
1:08
OR ( ||, or)
1:35
AND (&&, and)
2:08
XOR (xor)
2:30
Logical Operators (cont.)
2:54
The OR and AND Logical Operators
2:55
Precedence of Logical Operators
3:35
Logical Operators Coding Example
3:58
Logical Operators Coding Example
3:59
Short-Circuit Operators
9:54
Short-Circuit Operators
9:55
Coding Example
10:49
Ternary Operator
14:07
Ternary Operator
14:08
Syntax and Example
14:24
Coding Conventions
17:36
Coding Conventions
17:37
Homework Challenge
19:08
Homework Challenge
19:09
Homework Challenge (cont.)
20:26
Homework Challenge (cont.)
20:27
Web Application Development

19m 27s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Version 6.2 Review
0:26
Version 6.2 Review
0:27
Version 7.0 Changelog
2:39
Version 7.0 Changelog
2:40
Version 7.0 Coding Example
4:35
Version 7.0 Coding Example
4:36
Version 7.1 Changelog
12:43
Version 7.1 Changelog
12:44
Version 7.1 Coding Example
13:52
Version 7.1 Coding Example
13:53
Homework Challenge
17:42
Homework Challenge
17:43
More Conditional Control Structure

20m 49s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
elseif Statement
0:45
elseif Statement
0:46
elseif Statement Coding Example
1:22
Multiple elseif Statements
2:16
Multiple elseif Statements
2:17
Multiple elseif Statements Coding Example
3:07
Adding an else Statement
5:44
Adding an else Statement Overview
5:45
Adding an else Statement Coding Example
6:50
switch() Statement
8:07
switch() Statement
8:08
switch() Statement (Cont.)
9:14
switch() Statement (Cont.)
9:15
switch() Statement Coding Example
11:09
default Case
14:20
default Case
14:21
default Case Coding Example
15:13
Coding Conventions
15:57
Coding Conventions
15:58
Coding Conventions (cont.)
17:10
Coding Conventions (cont.)
17:11
Homework Challenge
18:06
Homework Challenge
18:07
Homework Challenge (cont.)
19:18
Homework Challenge (cont.)
19:19
Nested Conditional Control Structures

24m 49s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Nested Control Structures
0:36
Nested Control Structures
0:37
Nested Control Structures Coding Example
2:08
Coding Conventions
6:34
Nested vs. Not Nested Control Structures
6:35
Debugging Control Structures
7:51
Debugging Control Structures
7:52
Incorrectly Specified Test Conditions and Forgetting a Break Statement
8:32
Incorrectly Placing an Opening or Closing Curly Brace
12:14
Debugging Tips
16:24
Tracing the Execution of Your Code
16:25
Adding Echo Statement
17:15
Homework Challenge
21:41
Homework Challenge
21:42
Homework Challenge (cont.)
23:08
Homework Challenge (cont.)
23:09
Web Application Development

28m 20s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Version 7.1 Review
0:46
Version 7.1 Review
0:47
empty () Construct
1:38
empty () Construct
1:39
empty () Construct Coding Example
2:37
Version 8.0
5:32
Version 8.0 Overview
5:33
Version 8.0 Coding Example
7:08
Version 8.0 Coding Example
7:09
Version 8.1
16:13
Version 8.1 Overview
16:14
Version 8.1 Coding Example
19:48
Version 8.1 Coding Example
19:49
Homework Challenge
26:19
Homework Challenge
26:20
Sending Email Using PHP

43m 50s

Intro
0:00
Lesson Overview
0:14
Lesson Overview
0:15
Built-in Mail Extension
1:28
Built-in Mail Extension
1:29
SMTP Overview
2:04
SMTP Overview
2:05
SMTP - Windows
3:08
SMTP - Windows
3:09
SMTP - Linux/UNIX
4:58
SMTP - Linux/UNIX
4:59
Mail Configuration Directives
6:35
Mail Configuration Directives
6:36
Coding Example
7:48
Mail Server Authentication
10:20
Mail Server Authentication
10:21
fake sendmail Program
12:27
fake sendmail for Windows
12:28
Main 'add-on' feature
13:03
Username & Password
13:25
SMTP - XAMPP for Windows
14:07
SMTP - XAMPP for Windows
14:08
Sendmail Example
16:19
Sendmail Example
16:20
mail() Function
18:39
mail() Function
18:40
additional_headers
19:45
'From' Header
20:12
mail() Function Coding Example
21:09
mail() Function Coding Example
21:40
Web Application Development
31:43
Version 9.0 Changelog
31:44
ContactUs.php
32:52
ContactUs.php
32:53
contactInfo
33:45
Version 9.0 Coding Example
34:31
Version 9.0 Coding Example
34:32
Homework Challenge
41:32
Homework Challenge
41:33
User-Defined Functions

56m

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
Defining Functions
1:29
Four Parts of Defining a Function
1:30
Functions Example 1
2:29
Function Parameters
5:29
Function Parameters
5:30
Functions Example 2
8:20
Return Statements
12:53
Return Statements
12:54
Functions Example 3
14:20
Where to Define Functions
20:34
Where to Define Functions
20:35
include_once Construct
22:10
include_once Construct
22:11
include_once Coding Example
23:55
Reasons to Use Functions
27:44
Take Advantage of Code Reuse
27:45
Improve Code Readability
29:56
Use Instead of 'content' Include Files
32:12
Web Application Development
34:42
Version 10.0 Changelog
34:43
Version 10.0 Coding Example
37:55
Version 10.0 Coding Example
37:56
Outputting HTML in Functions
47:04
Outputting HTML in Functions
47:05
Example
49:02
Coding Conventions
53:16
Coding Conventions
53:17
Homework Challenge
54:33
Homework Challenge
54:34
Variable Scope

31m 37s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
What is Variable Scope?
0:57
Variable Scope
0:58
Global Scope
1:15
Local Function Scope
1:50
Variable Scope Coding Example
2:26
Variable Scope Coding Example
2:27
global Keyword
8:52
global Keyword Overview
8:53
global Keyword Example
9:25
Superglobals
12:34
Superglobals
12:35
Superglobals Example
14:53
Pitfalls of Global Variables
18:34
Pitfalls of Global Variables
18:35
When to Define Variables
22:09
When to Define Variables
22:10
Putting It All Together
22:56
Putting It All Together Example
22:57
Function Scope
28:56
Function Scope
28:57
Homework Challenge
29:41
Homework Challenge
29:42
Homework Challenge (cont.)
30:59
Homework Challenge (cont.)
31:00
Web Application Development

28m 27s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Version 11.0 Changelog
0:56
Version 11.0 Changelog
0:57
processGetVar()
1:42
processGetVar() Overview
1:43
processGetVar() Example
2:25
emailComments()
6:35
emailComments() Overview
6:36
emailComments() Example
7:14
outputItemLink()
11:19
outputItemLink() Overview
11:20
outputItemLink() Example
11:45
calcCartTotal()
19:25
calcCartTotal() Overview
19:26
calcCartTotal() Example
21:14
Homework Challenge
25:56
Homework Challenge
25:57
Optional Parameters

19m 35s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Optional Parameters
0:26
Optional Parameters Definition
0:27
Default Values
0:53
Optional Parameters Coding Example
3:26
More on Optional Parameters
6:55
Multiple Optional Parameters
6:56
Coding Example
8:05
Homework Challenge
16:18
Homework Challenge
16:19
Web Application Development

23m 7s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Version 12.0 Changelog
0:55
Version 12.0 Changelog
0:56
Update to outputLink()
1:44
Update to outputLink()
1:45
outputLink() Coding Example
2:40
outputImg()
13:57
outputImg() Overview
13:58
outputImg() Coding Example
15:35
Homework Challenge
22:05
Homework Challenge
22:06
Introduction to Conditional Loops

57m 20s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
while Loop
0:48
Definition
0:49
Syntax and Usage
1:12
Coding Example
3:33
Looping Over Arrays
13:16
Looping Over Arrays
13:17
Coding Example
13:53
Looping Over Arrays (cont.)
16:43
Internal Array Pointer
16:44
Array Traversal Functions
17:29
current ()
17:30
next () and prev ()
18:16
reset () and end ()
19:25
key ()
19:40
Indexed Arrays: Using current () and next ()
20:40
Indexed Arrays: Using current () and next ()
20:41
Associative Arrays: Using key (), current (), and next ()
24:06
Associative Arrays: Using key (), current (), and next ()
24:07
Array Traversal Functions (cont.)
29:41
list () Construct and Example
30:07
each () Construct and Example
34:40
Lopping Over Arrays Using list(), each()
42:13
Lopping Over Arrays Using list(), each()
42:14
Control Structure Scope
50:37
Definition and Example
50:38
Control Structure Scope Coding Example
51:59
Coding Conventions
54:20
Coding Conventions
54:21
Homework Challenge
54:58
Homework Challenge
54:49
More on Conditional Loops

35m 50s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
do-while Loop
0:42
do-while Loop
0:43
Simple do-while Loop Example
1:51
Another do-while Loop Example
4:09
continue Statement
10:46
continue Statement
10:47
For Example
11:07
continue Statement Coding Example
12:44
break Statement Re-Visited
18:10
break Statement Re-Visited
18:11
break Statement In while Loops Example
19:38
Infinite Loops
23:26
Infinite Loops
23:27
Coding Example
24:57
Common Loop Pitfalls
25:59
Counter Initialization Occurs in Loop
26:30
Counter Not Incremented in Loop
29:30
Unreachable Break Statement
30:50
Coding Conventions
33:48
Do-while Statements Coding Conventions
33:49
Homework Challenge
34:28
Homework Challenge
34:29
Web Application Development

22m 7s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Version 13.0 Changelog
0:48
Updating 'viewCart.php' and calcCartTotal()
0:49
Creating isValidCart()
9:22
Adding Three New Item to the Store & Links
15:56
Version 13.1 Changelog
17:20
Updating outputItemLink() to Remove Its Global Dependency on $itemCatalog
17:21
Homework Challenge
20:34
Homework Challenge
20:35
For & Foreach Loops

29m 28s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
for Loops
0:45
for Loops
0:46
Expression 1
1:22
Expression 2
1:47
Expression 3
2:01
Simple Example
2:27
Simple Example
2:28
Notes on for Loops
8:56
Notes on for Loops
8:57
Ending Loop Using Test Condition and Break Statement
10:06
Ending Loop Using Test Condition and Break Statement
10:07
foreach Loops
12:03
foreach Loops
12:04
Indexed Array Syntax
14:10
Syntax
14:11
Example
15:23
Associative Array Syntax
18:31
Syntax
18:32
Example
19:47
Coding Conventions
25:05
for Loops
25:06
foreach Loops
25:58
Homework Challenge
26:52
Homework Challenge
26:53
Web Application Development

25m 58s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Version 14.0 Changelog
1:19
Version 14.0 Changelog
1:20
Version 14.0 Coding Example
1:57
Version 14.0 Coding Example
1:59
Version 14.1 Changelog
5:39
Version 14.1 Changelog
5:40
Version 14.1 Coding Example
7:06
Version 14.1 Coding Example
7:07
Version 14.2 Changelog
15:37
Version 14.2 Changelog
15:38
Version 14.2 Coding Example
16:25
Version 14.2 Coding Example
16:26
Homework Challenge
23:35
Homework Challenge
23:36
Conditional Loop Wrap-Up

23m 12s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Nested Conditional Loops
0:39
Nested Conditional Loops
0:40
Coding Example
1:10
continue & break Re-Visited
5:17
Continue Statements and Coding Example
5:30
Break Statements and Coding Example
11:34
Loop Debugging Tips
15:16
Add Short Debug Statement At the Very Beginning
15:17
Output a Counter Variable
18:10
Add Debug Statement At the Very End
19:20
Homework Challenge
20:20
Homework Challenge
20:21
Homework Challenge (cont.)
22:00
Homework Challenge (cont.)
22:01
Variable-Length Parameter Lists

22m 16s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Variable-Length Parameter Lists
0:34
Variable-Length Parameter Lists
0:35
Coding Example
1:51
Variable-Length Parameter Lists (cont.)
5:21
When a Parameter List is Defined For the Functions
5:22
Coding Example
6:32
Variable Type Functions
9:54
is_int (), is_float (), is_string (), and is_bool()
9:55
is_ array ()
10:50
is_null ()
11:01
Variable Type Functions Coding Example 1
11:27
is_numeric() and Example
15:57
Variable Type Functions Coding Example 2
17:12
Homework Challenge
19:35
Homework Challenge
19:36
Homework Challenge (cont.)
20:52
Homework Challenge (cont.)
20:53
Web Application Development

38m 36s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Version 15.0 Changelog
0:33
outputLink (), outputImg (), is_array () and is_string ()
0:34
Version 15.0 Coding Example
1:31
Version 15.0 Coding Example
1:32
Version 15.1 Changelog
7:55
Removing Redundant Code and Adding New Function Called outputHtmlTag ()
7:56
Version 15.1 Coding Example
8:37
Version 15.1 Coding Example
8:38
Version 16.0 Changelog
14:55
Creating emailOrder() Using New Constants ORDER_EMAIL_FROM and ORDER_EMAIL_SUBJECT
14:56
Version 16.0 Coding Example
16:30
Version 16.0 Coding Example
16:31
Version 16.1 Changelog
32:21
Creating formatAsDollars ()
32:22
Version 16.1 Coding Example
32:57
Version 16.1 Coding Example
32:58
Homework Challenge
36:27
Homework Challenge
36:28
Miscellaneous Topics

31m 49s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
register_globals Directive
0:58
register_globals
0:59
Coding Example
2:04
$_GET vs. $HTTP_GET_VARS
4:07
$_GET vs. $HTTP_GET_VARS
4:08
register_long_arrays Directive Coding Example
5:44
Magic Constants
7:30
Magic Constants
7:31
__LINE__, __FILE__, __FIR__, and __FUNCTION__
8:16
Coding Example
9:06
exist() & die()
13:19
exist() & die()
13:20
Coding Example
14:08
Execution Operator
16:23
Execution Operator
16:24
Coding Example
17:27
Array Operators
18:23
Equality (==) and Inequality (!=, <>)
18:43
Identity (===) and Non-Identity (!==)
19:13
Union (+) Operator
19:41
Array Operators Coding Example
20:07
Variable Variables
24:13
Variable Variables
24:14
Coding Example
26:07
Variable Functions
28:02
Variable Functions
28:03
Coding Example
29:13
Loading...
This is a quick preview of the lesson. For full access, please Log In or Sign up.
For more information, please see full course syllabus of Introduction to PHP
Bookmark & Share Embed

Share this knowledge with your friends!

Copy & Paste this embed code into your website’s HTML

Please ensure that your website editor is in text mode when you paste the code.
(In Wordpress, the mode button is on the top right corner.)
  ×
  • - Allow users to view the embedded video in full-size.
  • Discussion

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (13)

3 answers

Last reply by: Dixon Kavanaugh
Thu May 16, 2013 10:19 AM

Post by Dixon Kavanaugh on May 10, 2013

Hi,

I am receiving an error in both the UN-adulterated web app ver 6.0 as well as the one I have created.

The error is the same: Notice: Undefined index: items in C:\Users\Dixon\xampp\xampp\htdocs\intro2php\Educator\web_app\version-6.0\checkout.php on line 10

Thanks

0 answers

Post by petar vukasinovic on September 26, 2012

Hello Matthew i love your lessons and pls help me.
In web store that i download from download section
every version of web aplication from 6.0 and above dont work i mean there is bunch of errors.
Can you help me pls?

1 answer

Last reply by: Rory Demers
Tue Jul 17, 2012 9:18 PM

Post by Jonathan Bello on June 29, 2012

~Rory can you explain some more please?

0 answers

Post by Rory Demers on May 15, 2012

For those of you getting errors and warnings on the lesson files make sure that in whatever IDE or notepad you are using that you follow the file path exactly as stated in the config.php file when adding them to your IDE. My mistake was that I was copying and pasting the files from inside the versions folder and leaving out the file path web_app and version-6.0 which are in the config.php file.

FYI: Also heads up on where he places the images folder going forward 6.1 and on.

0 answers

Post by Joe Han on April 21, 2012

I get warning sign on versions later than v5.

0 answers

Post by phaby amardy on April 21, 2012

Hi, I am using window 7, the php scripts from web_app version-6.0 and up. As i was following along, i was making my own web store base o the information you were given. But whe i reach web-app version 6 in lecture my php scripts stop working, it displayed many errors. I even downloaded your webapp training files and i opened them in my browers it gave me the same errors as my web_app. this. Mainly it does not display the header, html and the images, and the config.php, is there any thin i can do to fix this?

1 answer

Last reply by: Matthew M.
Tue Feb 7, 2012 4:03 AM

Post by Senghuot Lim on January 5, 2012

Can i please get some help? I'm working on a mac. I tried $_SERVER ['DOCUMENT_ROOT'] and everything seem to work fine but when i tried this

<?php
define ('IMAGE',$_SERVER['DOCUMENT_ROOT'] . '/lectures/galaxyS2.jpg');

echo '<img src=" ' . IMAGE . ' ">';

?>


it is not working. this is driving me crazy. can i please get an answer. i have spend over 100 dollars on your site. can i please get some help?

Web Application Development

Web Application Development

Lecture Slides are screen-captured images of important points in the lecture. Students can download and print out these lecture slide images to do practice problems as well as take notes while watching the lecture.

  • Intro 0:00
  • Lesson Overview 0:13
    • Lesson Overview
  • Version 6.0 1:13
    • Version 6.0 & Version 5.1 Review
  • Version 6.0 Changelog 11:24
    • Version 6.0 Changelog
  • Version 6.1 Changelog 12:00
    • Version 6.1 Changelog
  • Version 6.1 Coding Example 12:42
    • Version 6.1 Coding Example
  • Version 6.2 Changelog 15:18
    • Version 6.2 Changelog
  • Version 6.2 Coding Example 18:19
    • Version 6.2 Coding Example
  • Homework Challenge 25:24
    • Homework Challenge

Transcription: Web Application Development

Hello, and welcome back to Educator.com's Introduction to PHP course.0000

In today's lesson, we are going to continue working on our web application,0004

incorporating some of the information that we learned in our last few lectures on functions and constants.0007

We are going to quickly just talk about some of the things from the last web application version, which is 5.1.0015

And then, we are going to go through three new revisions of the web application.0022

In version 6.0, we are going to be adding a web application configuration file, which is going to include0027

a lot of different constants, which is going to make managing the application easier.0036

In version 6.1, we are going to make use of the constants in order to move our image directory up one level from the directory tree,0042

which is going to make it easier in developing future versions of the application, as you will see.0050

And then, in the third version, 6.2, we are going to be making use of constants and functions to output the date and time0055

that an order was created, as well as doing some sales tax calculations.0067

If we go and look at version 5.1, this is the store as we know it: it has a View Cart function0075

where you can select different quantities, go ahead and check out, and so forth.0084

And when you complete your order and enter in your shipping information, it will say your order was completed.0093

What we are going to do is create a configuration file that is going to make managing all these different pages within here easier.0099

In version 6.0, we are going to create a configuration file called config.php.0106

We are going to store it in the version_6.0 in the includes directory; we are going to create a new file called config.php, and that is where it's stored.0112

And in this file, we are going to do a couple of things: we are mainly going to be defining a bunch of useful constants0121

that we can use in all of the web page, because what is going to happen is: we are going to include this configuration file0127

in all of our web pages, and then we are also going to move the catalog.php include that was in all of the pages,0134

and move it here into this one config file, because this is already being included in all the files, so we can locate all of the includes in one spot.0142

The couple of different constants that we are going to define: the first one we are going to define is a version number.0154

And it is just a string, and what that is used for is: we are going to be creating a constant called IMAGE_DIR,0159

which is going to be the location of the image directory for our web application.0167

We are going to build this IMAGE_DIR constant up from what is called the root URI, which is the base URI, or URL, of our web application.0173

As we know from working with it previously (let me go back to Home), we can see that, for example, for version 5.1,0185

the URI after the host name is intro2php/web_app, and then the version number.0196

That is the root URI for that version of the web application.0203

What we are going to do here is: we are going to create a ROOT_URI constant, and we are going to define it as we do here,0208

except that, for each configuration file, or each version as we update, we are going to update the version number.0215

And that is going to update the root URI, because every root URI has a different URL, because they are stored in a different version folder.0221

Then, we are going to create this IMAGE_DIR constant, which is the root URI.0231

And as we know from what we have done in our previous web application,0235

the images are all stored in a folder called Images in the root directory of the web application.0239

That is what the IMAGE_DIR constant is going to do.0245

Additionally, we are also going to be creating a constant that has a path to the include directory, where we store all of our include files.0248

And in our web application, we store all of the include files in a folder called includes in the base folder of the application directory.0258

What we do is: we create a constant called DOC_ROOT, which makes use of the $_SERVER ['DOCUMENT_ROOT'] variable,0267

which gives you the document root of the entire web server that the script is running on.0276

We are going to append to that the root URI that we created up here.0282

It is going to add to document root the path to the folder of the current version of the web application.0287

And then, we are going to create an INCLUDE_DIR constant that is going to append to this document root,0300

which (the document root) is going to be version-sensitive, because, as up here, we defined...the root URI depends on the version number.0307

And then, what we are going to do is...we have created the document root, and the INCLUDE_DIR is just going to be0319

that document root for this particular version of the web app, which is just going to be an absolute file length.0323

And we are going to add to it the file path includes/, and that is going to say0330

that the include directory is at our web application's document root in the includes directory.0337

Then, we are going to define two constants called HTML_HEADER and HTML_FOOTER.0344

What they are going to do is: instead of having to explicitly, in each of our files,0349

have an include statement that says include/header.phtml, for example, we are going to create that all in one constant.0356

And then, we are going to use that constant in all of our different pages.0364

And what that is going to allow us to do is: let's say we decide to change the name of header.phtml that we want to use for a header file;0367

well, the way we currently have it, we would have to go through every page and update that header.phtml include statement.0375

By creating a constant called HTML_HEADER, which is the path to the include directory, and then the name0382

that we want to use for our HTML header, and by setting that to this constant HTML_HEADER, we can use the HTML_HEADER constant0390

in the include statements in all of our files.0398

So, if we ever need to change what we want to use as our header include file, all we do is update it once in this configuration script,0400

by updating this constant, and all of the different pages will receive the updates.0408

Additionally, at the bottom here, we just have include the catalog, which all of the pages have included normally.0414

But we put it all in this one config file; and catalog.php is located in our include directory.0421

So, if we look previously, for example, at store.php, as mentioned, you can see that we have an include file0429

that has hard-coded into it include/header.phtml.0437

And in every one of the web pages in our previous version of the web, an application has this hard-coded in there.0442

So, if header.phtml changed, you would have to update all of the changes.0448

Now, what we have done in store.php is: at the beginning of each page, we include the new include file config.php0453

that we just created, that defines all of these constants.0461

And now, our include statement changes to just include, followed by the HTML_HEADER constant.0464

So now, any time we update this HTML_HEADER constant, if the header file changes,0470

what we are going to do is: we update all of the include statements in all of our files to use this constant,0478

so that change will get propagated to all of the different files.0482

And also, if you look at the bottom, you can see that we have replaced the include/footer.html with the HTML_FOOTER constant.0486

The other thing that we have done is: because we created the IMAGE_DIR constant, anywhere we have an image...0497

an image tag in the source...for example, in header.phtml is where the image tag for the logo is placed...0507

what we can do is: in the image tag source attribute, we can just specify to output the image directory, or the IMAGE_DIR,0517

which is the image directory for this particular web app version, and then just specify the image name.0529

What that does is: like with using the HTML_HEADER constant, it allows us to change the location of our image directory.0536

We only need to update it in one spot: we update it in our config.php file.0545

And then, because all of the different files that are going to access images are going to use this IMAGE_DIR constant,0550

by making the change in our config file, all of the pages will get updated accordingly.0556

And so, you can see, we have done that here in header.phtml.0561

In item.php, we output the item's image, and so, you can see, we have used the IMAGE_DIR constant here, as well.0565

And then, in viewCart.php, where we output the list of all the items in the store, it outputs a small version of the image.0576

And you can see that you use the IMAGE_DIR constant here.0583

Now, what that does is: if we pull up the older version of item.php, for example, from version 5.1, our last version,0586

we can see that, in our image tag, the images folder was hard-coded into there.0601

Now, that has been replaced with this IMAGE_DIR constant, so that we can update and change the image directory folder, if we choose.0607

Now, that is also going to change how the links appear in our source coding for HTML.0617

So, if we go and look at index...for example, this is version 5.1; if we view the source of this page,0622

we can see that (let's get this up) the source for our image is this hard-coded string, images/educator.png.0630

Well, in our new version in app 6.0, we go to store.php, and we view the source; we can see that the image source0641

has now been updated to this absolute URL, which is specified by IMAGE_DIR.0653

And so, this is output everywhere the IMAGE_DIR constant is used.0659

So now, the URL becomes the full path to the image directory for the version 6.0 web app.0663

And we are basically saying "load educator.png from this image directory."0670

So, this page right here--this slide--shows all of the changes that we had talked about.0686

We created a config file, config.php, that contains a bunch of application-wide constants that we can use in all of our different files.0691

We have done this; we have updated all of our files to use the HTML_HEADER and HTML_FOOTER constants.0699

So, if we need to change the header or footer file, we can do it in one location.0705

And then, we have updated all of our places where we have used image tags to use the IMAGE_DIR constant0710

to find where the images are located.0716

In our next version, version 6.0, we are going to take advantage of this IMAGE_DIR constant.0720

We are going to show how it's beneficial, in that we are going to change the location of the image directory.0726

Now that we have included the IMAGE_DIR constant as the path for all of our image tags, by updating that once in our configuration file,0731

it will update it for all of the different pages that include images.0741

So, if we move the image directory, which is what we are going to do in this particular version of the web application,0744

just by updating the config file, all of the pages will be able to find those images.0750

And what that is going to do is: right now, every time we create a new web application,0755

we are copying the images directory over from one version to the next.0760

for example, in version 5.1, we have all of our files in the folder, and then we have an images directory that contains all of the images.0764

Well, in version 6.0, we have that same image directory with all of those images, and so we are copying them over and over.0772

What we can do is: we copy this directory and move it up one level0779

outside of the version directory, and just create an images file here.0786

Now, we can reference this directory in all future versions of our web application, and we don't have to copy it into each version folder.0790

Now, this is one that saves disk space, but the other thing that it does is:0798

it is also showing us the power of being able to use constants to make these changes.0804

So, if we go to our web app (let's close down some of these pages), and we go to version 6.1,0810

first of all, you will notice that the image directory is no longer here--we moved it up one level.0826

If we look at our includes directory, and we look at catalog.php...I'm sorry, not catalog.php; if we look at config.php,0832

which is our updated config file, you can see that we have updated the IMAGE_DIR constant.0840

So now, instead of being intro2phpwebappversionxxx/images, it's just intro2phpwebapp/images.0845

That will be the same for all future versions of our web application.0854

So, if we go and look at the version 6.0 version of the pages, and we view the source, for example,0860

we can see that the source has been updated so that it uses this new image directory.0873

And if we look at, for example, the source code for the header.phtml page, we can see that, as before,0879

we have included this IMAGE_DIR constant to specify the image directory.0894

And because we updated it in our config file, and the config file is included in all of our pages,0900

this header file will always know where to be able to find the different images.0905

Those are the changes for our version 6.1.0915

The final version we are going to talk about today is moving on to version 6.2.0919

What we are going to do is: we are going to take advantage of what we have learned about constants,0923

and also what we have learned about functions, particularly date functions, to add a little bit of improvement to our web application.0927

First of all, we are going to include a sales tax calculation for the user's shopping cart when they go to check out.0935

And as part of doing that, we are going to introduce the function called round,0942

which you can look up in the PHP Function Reference, which you now know how to use.0947

And we are going to use that to round out our total to two decimal places, because sometimes,0952

when you do math...like we are going to be calculating based on sales tax...you can get some really long decimal numbers.0956

This is going to round it down to two values, which is what dollars are typically shown in.0964

In order to do this, we are going to be adding a constant sales tax rate.0970

That is going to allow us to set the sales tax rate we want to use for all of our calculations in the whole store, and put it in one place.0974

We are also going to be creating a constant called ORDER_DATE_FORMAT.0981

And what that is going to do is: we are going to be adding to our thankYou page a timestamp0984

that says "Thank you for your order; it was completed at this date and time."0991

And we are going to be using the date function for that; and as we learned, for using the date function,0995

we know that the first argument that it takes is a string that specifies the format of how you want the date output.0999

We are going to make that format a constant; we are going to set ORDER_DATE_FORMAT to a string1006

that is equal to the format that we want to use.1013

So, for example, let's say we have the format that just shows the month, the day, and the time that the order was purchased.1016

Well, maybe, in the future, we want to update it so that it includes the year, as well.1024

We can go to our config.php file and update ORDER_DATE_FORMAT, so that the string is this new format that includes the year.1027

And then, that change is made.1035

And in this particular version of the web app, we are only using that order date in one spot,1036

so we could technically just hard-code it in that one spot in thankYou.php.1042

But, if, let's say, we want to use this format in other parts of our web page--maybe we want to output the order creation1048

date and time in other web pages--by creating this constant in the config file, we can then use that formatting in many different spots,1056

and only have to update it in one spot, if we decide to change it.1065

As mentioned, we are going to output on the thankYou page the order creation date and time.1069

We are also going to output what the sales tax rate was that was used to calculate the total.1075

And then, the other thing we are going to do is: we are going to make use of the strtoupper function that we learned about1079

so that the state abbreviation the user enters in the checkout form is always going to be capitalized,1085

because sometimes they might, for example, for California, type ca in lowercase.1090

And to properly format it, we are going to capitalize it to capital CA.1094

Let's go and take a look at some of the code for version 6.2.1100

First, let's look at the config file; and you can see in the config file, one thing we did is: we have updated the version number,1108

so that all of our include URL's will refer to the right version directory.1117

I've also added a section here of miscellaneous application-wide constants.1127

Here is where we define order date format, and this is a string with date formatting constants in it1131

that you can learn about on the date function's web page at the Function Reference at php.net.1142

Also, we have defined a sales tax rate constant; in this case, we are defining it to .1, which is a 10% sales tax.1149

So now, if we go and look at checkout.php...1158

Actually, before we do that, let's go to version 6.2.1166

We'll go to the store; we are going to view the cart; and let's place an order for one of each item; and we go to check out.1171

As you can see, the total has changed from the way it was last time--last time it just outputted the subtotal of all the items.1189

Here, it says, "Your total was 709.48" rounded to two decimal places, and it says "with sales tax."1196

So, we have added to checkout.php sales tax, to our calculation for the total.1202

So, if we go and look back at the new checkout.php, we can see what we have from the other version, version (I guess it would have been) 6.1.1208

And what we have done is: we have updated the variable that used to be called currentTotal to currentSubtotal,1224

because that is often what a total is called before you add sales tax to it.1230

And then, we have updated all of the three operations that add the price and quantity of each item to the subtotal.1234

Basically, we have multiplied the price of each item by the quantity selected and added it up.1245

These are the same operations as before, except they are adding it to the value currentSubtotal.1252

Then, what we are doing here that is new is: we are creating a new variable called currentTotal.1256

which was in the last one, but now it's going to have a different purpose here, because it's going to include the current subtotal, plus any sales tax.1261

The way that we calculate that is: we add to the current subtotal the current subtotal times sales tax rate, which is our constant we defined.1268

So, if we want to ever change the sales tax rate to, let's say, 9.75%, we can update that in our configuration file,1277

and it will get updated here, and this calculation will change.1286

Then, you can see that we have gone ahead and used this new function that we talked about, called round.1292

It takes a float number as its first parameter, and then the number of decimal places you want rounded to is the second parameter.1297

We are going to round this total to two decimal places, because that is what dollar amounts are represented in.1304

And then simply, as before, we are going to output the current total, and then just have a mention that it says "with sales tax."1310

Now, if we go back and proceed with the checkout, notice, I'm going to use lowercase letters here for this date...1320

Scroll down a little bit, and then go to Complete Order, and you will see a couple of things.1343

You can see "your order was completed on___," and we have added the order completion time1348

that shows the date, the time, and the time zone.1353

And we also output, as before, the final total, but we mention that it included sales tax at a rate of 10%.1358

And also, down here, you can see that the user had entered (in this case, I had entered) a lowercase state abbreviation,1364

but to properly output that (we capitalize it), we use the strtoupper function.1370

If we go and look at the thankYou.php page, we can see a couple of changes that were made.1377

First, in the section at the top that outputs information about the order total, you can see that we have used the date function,1390

which by default, if you only specify one parameter, outputs the current date and time1399

(that would be the date and time this order was created).1403

And we are going to format that date according to the ORDER_DATE_FORMAT constant, which we have defined and declared in our config.php file.1406

And so, if we ever wanted to change it, we could go change it in that one spot, and it would propagate here, as well.1415

The other thing that we have done is: we have output a little message that says,1421

"with the final total of" and then we output the order total, "including" and then we do a calculation that outputs the sales tax rate,1427

which is basically...to do it in a percent, we multiply the sales tax rate times 100; and in this case, it's going to output to 10%.1435

The other change we had made was down here in the table that outputs all of the address information.1443

We can see that we have used the strtoupper function to capitalize any state abbreviation that was provided by the user.1451

One thing you will notice is that we have used the concatenation operator here, and that is because of what we had talked about before with functions.1461

Functions can't be included within double-quoted strings, as you can variables;1467

and so, we have to use that to concatenate this value to the city and ZIP code value.1472

And so, this is what our final page looks like; and to give an example of the flexibility this provides,1481

let's say we go back to our config file, and let's say we don't want to output the time zone anymore.1487

So, for example, t is the timezone in the date function format; so if we delete that, and we save it, and we go back to here,1495

right now, we have PDT, which is an abbreviation for Pacific Standard Time, and we update the page.1505

We can see that it has eliminated the time zone identifier.1514

And so, that shows you how...let's say we had used this date formatting in a couple different spots on our website;1518

we just went ahead and updated it in one spot.1522

So, for today's homework challenge, I just want you to, as usual, go through and make sure you can identify and understand1527

the changes that we made in progressing from version 5.1 to version 6.2.1532

In particular, I want you to consider how the changes we made have increased the flexibility and maintainability1537

of the web application, by using constants in a common config file.1546

We have seen how now, for example, with the include statements for our headers,1550

if we ever want to change the header file that we are going to include, we only need to change it in one spot, as opposed to every page.1555

That increases the ease that we can maintain our web applications, because we don't have to update each page individually.1560

Additionally, these constants provide some flexibility, because now we showed how we could move the image directory1568

to whatever directory we wanted to, and by using a constant to define that, we update the new image directory in one spot,1574

and all of the different pages are now able to find the images.1580

That ends today's lesson; thank you for watching Educator.com--I look forward to seeing you next time.1583

Educator®

Please sign in to participate in this lecture discussion.

Resetting Your Password?
OR

Start Learning Now

Our free lessons will get you started (Adobe Flash® required).
Get immediate access to our entire library.

Membership Overview

  • Available 24/7. Unlimited Access to Our Entire Library.
  • Search and jump to exactly what you want to learn.
  • *Ask questions and get answers from the community and our teachers!
  • Practice questions with step-by-step solutions.
  • Download lecture slides for taking notes.
  • Track your course viewing progress.
  • Accessible anytime, anywhere with our Android and iOS apps.