Matthew M.

Matthew M.

Script Input & The GET Method

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.
Since this lesson is not free, only the preview will appear on your website.
  • Discussion

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (4)

0 answers

Post by ido montia on February 22, 2018

GET is not secure method... in the real world we use only POST method for submit info to web serevr..

0 answers

Post by candis bellamy on December 22, 2016

When the query string appends to the URL using the get method, Firefox does not display the page b/c the new URL is unrecognized. Is this a configuration issue? Am I missing something? PLEASE help me fix this. I cannot find a solution on the web.

1 answer

Last reply by: christopher reece
Tue Jul 31, 2012 3:53 PM

Post by Nitheesh Menon on May 7, 2012

This video is not working.After playing for three minutes it stops and starts playing from the begining i am fed up with ur service i faces the same issue with other files aswell.

Script Input & The GET Method

  • There are three basic ways a user can provide input to a PHP script: the HTTP GET method, the HTTP POST method, and Cookies.
  • These methods provide input to a script via pairs of strings, known as name/value pairs .
  • The HTTP GET method provides input to a script by appending name/value pairs to a destination script’s URL.
  • HTML forms are composed of a set of input controls that each represent a name/value pair to be sent to a script upon the form's submission.
  • The HTML <form> tag is used to declare an HTML form. It has two key attributes: action and method .
  • Query strings are name/value pairs appended to a URL after a question mark. Each name and value are separated by an equals sign, and each name/value pair are separated by an ampersand sign.
  • URLs have specific syntax rules so query strings added to URLs must be encoded to follow those rules. This is known as URL Encoding .
  • urlencode() is a built-in PHP function used to properly encode URL query strings.
  • Additional Resources:

Script Input & The GET Method

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:15
    • Lesson Overview
  • Providing Input to PHP 0:39
    • GET Method, POST Method, and Cookies
    • Name/Value Pairs
  • GET Method 1:57
    • HTTP GET Method
    • Query String
  • GET Method Example 3:38
    • GET Method Example
  • Review of HTML Forms 8:16
    • HTML Forms
    • Input Control and Submitted Form
  • <form> Tag 10:07
    • <form> Tag
    • Method
    • Action
  • Input Control Examples 11:50
    • Input Control Examples
  • Common Input Controls 17:31
    • Common Input Controls
  • Query Strings 18:52
    • Query Strings
    • Query Strings Syntax
  • URL Encoding 20:01
    • URL Syntax
    • Examples
    • Simple Form Example
  • urlencode() Function 24:08
    • urlencode() Function
    • Example
  • urlEncoding Text Example 25:54
    • Simple Form Example
  • Homework Challenge 28:46
    • Homework Challenge

Transcription: Script Input & The GET Method

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

In today's lesson, we are going to be talking about how to provide input to your PHP script,0004

and specifically how input is provided using the GET HTTP method.0009

In today's lesson, we are going to talk about a couple of different methods that are available for providing input to a script.0017

We are going to talk, in particular, about the GET method, which is what we are going to be using throughout this course.0024

We are going to do a slight review of HTML forms, and then go over something known as URL encoding.0030

How do you provide input to a PHP script? Well, there are three basic ways that you can do that.0041

There are two HTTP methods known as the GET method and the POST method,0046

and if you have worked with HTML forms before, you may be familiar with that.0051

Also, you can use what are known as cookies to provide information, as well.0054

In this course, we are only going to be dealing with the GET method; and the reason for that is that the POST and cookie method0060

are somewhat more complicated and advanced topics, so we are going to save them for the advanced course.0065

In addition, by using the GET method, it makes debugging our scripts easier.0071

In a sense, we are just learning PHP, and we are going to be making mistakes along the way; using the GET method is going to help us with that.0075

Now, the way that these methods work, whether it's GET, POST, or cookies--they provide information to a script by name/value pairs.0082

For example, you might have the name username, which is just a property, let's say, called username; and you are going to set it the value JSmith.0091

Or, the user using your HTML web page is going to set that value.0102

This is a name/value pair, and what is going to be done is: it is going to be sent to the web server when the user submits the web page.0108

Now, let's talk a little bit more about the GET method, the HTTP method GET,0118

and how it works to provide input to a PHP script--or, in fact, any other script.0124

What it does is: it appends the name/value pairs that we had just talked about, or any number of name/value pairs,0129

to the destination script's URL; and it does so in the manner shown down here.0136

So, for example, we have a script named process.php, and using GET, we want to pass it a name/value pair.0143

In this case, we have name1 as the name and value1 as the value; they are just sample values for those.0152

The way you append them is with a question mark.0159

And so, any time the GET method provides input to a script, it does so appending stuff to the end of the URL.0164

When you append the name/value pairs to a URL, that is known as a query string.0173

So, everything after the question mark in this particular link is known as a query string, and it's composed of name/value pairs.0180

Now, one thing to note is that the GET method can actually be used to input data to a script using HTML forms, or it can be done manually.0188

So, when you have an HTML form (which we are going to get to in a little bit), you can set it to use the GET method,0199

and the HTML form automatically appends the name/value pairs you submit, that are created by your form, to the URL for you.0205

You alternatively can do it manually, as well, which we are going to look at a little bit towards the end of the lesson.0213

Let's take a look at a script here I've created called simpleForm.html.0220

Basically, what it is: it just has a simple text field and a Submit button.0228

Again, we are going to get into forms in a little bit; but it uses the GET method to submit things.0231

And so, if I type my name in--Matthew--and click Submit, you can see, up in the address bar of the browser,0237

that it has appended to the URL simpleForm.html a question mark, followed by text1=Matthew,0246

text1 being the name of the name/value pair, Matthew being the value that I supplied to the form.0254

You can also see that the question mark has been appended to simpleForm.html, which means,0261

when I submitted this form, I submitted it to the same page.0267

In this case, it submitted it to an HTML page, simpleForm.html; now, because simpleForm.html is just a raw HTML page,0271

it doesn't have the capabilities to process any input passed in the URL by a query string.0280

So, in this case, it actually does nothing; and what we are going to be doing in this course is using PHP scripts to receive the input.0287

And so, instead of having simpleForm.html followed by a query string, it might be simpleForm.php followed by a query string.0295

What that is going to do is load up a PHP script that is going to know how to extract the name/value pairs from this query string.0302

We are going to begin talking about that in the next lesson.0311

One thing I wanted to note: if you can see here, we had Firebug set up at the bottom of Firefox.0314

And the way you access that, again, is by clicking on the little bug icon in the bottom right-hand corner of the window.0320

There are a couple of different panels here; and today, we are going to be working with the Net panel.0327

And what you can see is: the Net panel provides information, for example,0332

about the HTTP that is going on behind the scenes when you request the web page.0336

So, when you request a web page...in this particular case, we requested the web page simpleForm.html, using the GET method.0341

We send that HTTP request to the server; in response, the HTTP server sends a response back,0349

which in this case, because it was the same page--it just outputs the same page.0358

Now, what you can do is: if you select the Net panel and select All from the next menu bar, you can click on the plus sign,0364

and what you can see is: there are a couple of different tabs; and the one we are going to click on is Headers.0377

What this shows is information about the request that was sent from your browser to the web server when you submitted the form,0383

and then the response that was sent back.0391

If we go down to the request header section, and if you click, there is a View Source link that you can click on.0393

It is going to show the raw HTTP header, and that is actually what was sent by HTTP to the server.0401

You don't need to be concerned with the details of what is included in this header; there is a lot of information there.0409

We are basically just going to be concerned with the first line, and the format of the first line of a request header is a method name0415

(in this case, it's GET, because we used the GET method), followed by the file or resource we were requesting, which is simpleForm.html.0423

And then, it also lists the HTTP version number that it is using.0433

However, as you can see, when we submitted the form, the URL is not just simpleForm.html;0437

it actually has a question mark with text1=Matthew appended to it.0442

And so, that is an example of a query string; and as we can see, using Firebug, this is a way to see what was submitted to a script.0447

And you will find, down the road, it will be a useful debugging tool.0460

Now, it provides the same information that was shown up here in the window, but it also provides a little more information.0463

And it also has a Params tab that will actually show you all of the name/value pairs that you submitted by a GET.0469

And, for example, you can see that we have that text1 is a name we submitted, and the value we set it to was Matthew.0481

And so, this is an example of using Firebug.0489

So now, let's talk a little bit about HTML forms; and this may be a review for some of you.0498

Basically, HTML forms are one way of submitting input to a script, and they can be done by the GET method0503

or the POST method, which some of you may be familiar with.0510

We are only going to be talking about the GET method in this course.0513

Basically, HTML forms are composed of what are known as input controls, and each input control0517

(such as a text box, or a dropdown menu, or a check box) has a name associated with it.0523

When the form that the input control is a part of is submitted to the web server, the current value associated with each input control0529

is associated with the name of the input control and sent as a name/value pair to the web server.0539

And, as mentioned, it does it by using the GET method as a query string, and it appends it to the end of the URL.0545

The way it does that is that each input control, as we will see, is an HTML tag that has a name attribute and a value attribute.0553

The value attribute is not always set, but the name value is always set;0565

and when you submit the form, that is going to be the name that is going to be submitted in the query string.0571

So, for example, you may have a text field that asks for a user's username,0577

and so the name you might assign to it--the name attribute--would be username.0583

So, in your query string, it will say username= and then the value will be whatever value the user had entered into that text field onto the form.0588

So again, basically, what happens is: when a form is submitted,0597

the name of each input control, along with its current value, are sent over to the web server.0600

How do we declare a form in HTML? And again, some of you may have experience with this.0609

The way we do it is using the form tag; and the form tag can contain input tags, select tags, option tags, and text area tags.0614

What those are, are input elements that will supply name/value pairs to the server when the form is submitted.0627

Now, the form tag itself has two important attributes: one called method and one called action.0635

The method attribute can be set either to the value GET or POST, and what that does is:0643

that describes the HTTP method that the form will use to submit the data.0649

It could be either GET or POST, and as mentioned, we are going to be working with GET, and so, that is what our forms will be using in this course.0654

But some of you may have used the POST method before.0662

The GET method--again, the way it works is by appending the name/value pairs after a question mark on the URL that you are sending the data to.0665

Additionally, probably the most important attribute is the action attribute.0674

That is the name of the script, or the URL of the destination script, that you are submitting your input to.0680

It is most likely go to be, for our course, in a PHP file.0687

That PHP file is going to be able to extract information from the URL query string,0691

and then make it available to you so that you can use it within your script.0697

We are going to be talking about that in the next lesson.0702

Let's take a look at another form that has a bunch of different elements on it, to demonstrate the different elements that are available.0707

If you go to lecture_12, there is a form called inputExamples.php.0723

What this is: just an HTML form that shows some of the different options that are available as input elements, or input controls, on a form.0730

We have a basic text field where you can type any sort of text.0740

We have a password field, which is the same thing as a text field, except that it blocks everything out,0747

so somebody looking over your shoulder can't see what you are writing.0753

Now, that said, the password field does not actually encrypt any password you write in there.0757

It is just sort of something for when you are using maybe a public computer, and so forth.0760

There is the check box input control, which you can use to check different options.0766

There are radio buttons, which are used to select one option from a group of several options.0772

So, in this example, we can select either Yes or No.0778

There is a select menu, which is essentially a dropdown menu with different options to be selected.0781

There is a large text field, for example, where you can enter maybe comments--like if you have a Contact Us page on a website.0788

There are also what are known as hidden fields, which is information--a name/value pair--that is passed on to a script0800

that the user has no control over--essentially, the user is not entering any value.0809

It is not extracting a value from a field; it is hard-coded into the HTML.0815

Then, the other input controls are the Submit button (which is how you submit the form)...0821

There is also what is known as an Image Submit button, which functions the same way as the Submit button does.0827

It submits the form, but it allows you to use an image to click on instead.0831

There is also a Reset button, and the Reset button allows you to reset the form to its default values; so it clears everything you entered.0836

If we go ahead and type some data here again...select yes...and let's pick option 1, and we click the Submit button,0844

we can see that, in this case, this HTML form actually, just as we did for simpleForm.html, just submits the data to itself.0860

The destination URL for this form data is inputExample.php.0870

And if we go ahead and look at the source code for this (let's look at it in the text editor), it's a PHP file, but it only contains HTML.0877

We can see here the form tag that we had just talked about; and it has the two important attributes, method and action.0897

We set method equal to get, because the GET method is what we are going to be using, which appends stuff to the URL.0906

The action is inputExamples.php.0911

So basically, when this form gets submitted, all of the name-value pairs that are generated by the form0915

are submitted to the URL inputExamples.php, which happens to be the same script.0920

Now, this script, though it's a PHP file, doesn't actually do anything with those values, but typically what is going to happen is:0926

your action is going to be to a PHP script; it is not going to be to an HTML file, because HTML files don't know how to handle the input data.0932

If we go back and look at the example, we see up here that it has appended all of the values0943

and names that they are associated with from our form to the URL.0952

And again, we can use the Firebug console (sometimes you have to refresh the page to get it to show up), and we can see the GET request.0957

If we view the source, we can see the long string that was created, and it shows that, for every input control we had on there,0969

it has its name and then the value that it had at the time the form was submitted.0977

And maybe the more useful thing would be to click on the Params tab again, and that is going to show0983

the names and associated values from all of our input controls that were submitted when we submitted the form.0988

So, we have checkbox1; the value is checkedValue; password1--I had typed password; in the text box, I typed Matthew.0994

In the text area, I typed "Here is a comment"; so this all shows up--this is a useful debugging tool to see what actually is sent to your script,1005

so you can figure out where the problems are, if maybe you are having trouble processing script information.1018

Now, the other thing is: we can also submit the form, just to show you, using the input Submit button.1023

When we click on it, it does the same exact thing: it submits the form,1034

and the browser itself generates the query string to append to the URL, which has all of the name/value pairs that the form represents.1039

And here, just for your use, I have listed a list of the common input controls used in HTML forms.1052

These are pretty much all the ones that you use; I think maybe in HTML5, they may have added some more options to this,1060

but these are the standard ones that have been used for years.1066

And as we had talked about, we had the text field, password field, checkbox, radio button, the select menu, which is a dropdown menu,1070

a large text field, and then hidden, two submit buttons, and a reset button.1080

The majority of these use an input HTML tag, and the way that they differentiate one type of input control from another is using the type attribute.1087

So, for example, the text field--you create the type attribute and set it equal to text.1097

The only two that don't use the input tag are: the select menu (and the select menu uses a select tag, and within it,1103

it has option tags, which describe all of the options that will be part of the menu); and then for the large text field,1114

where we enter comments that we want to send to the website, you use the text area tag.1120

So, as we mentioned, using the GET method, name/value pairs can be sent to a destination script,1133

using the HTML forms, or by manually appending a query string to the URL.1142

That is what we are going to talk about now: query strings and how they are formed and appended to a URL.1148

For example, we have a script test.php, and we want to submit to that form two name/value pairs; this is how we would do that.1154

This is something we could hard-code into, for example, an anchor link in your web page.1167

Or it is something that you could actually type into the browser itself.1174

What it does is: each name/value pair in query strings are separated by the ampersand, or the and sign.1178

And then, each name and value are separated by the equal sign.1186

And so, that is what a typical query string looks like.1192

And if you can think back on the other examples that we did, you were able to see that in the browser, as well.1194

Now, one thing to note is that query strings, because they are appended to the URL, are a part of the URL.1203

And as a result, they have to follow the syntax that URL's need to follow; and there is something known as URL encoding1208

that you need to do in order to make sure that the query strings that you append to a URL will work.1215

And for URL's, there are a couple of rules; one is that only uppercase and lowercase letters, decimal digits,1223

hyphens, periods, underscores, and tildes are allowed as is in the URL, which means you can just type them straight in there without any problem.1233

Spaces, however, must be URL encoded or replaced with the plus sign--so they will be replaced with this.1242

And any other characters that aren't of this setup here or a space must be encoded, using the hexadecimal ASCII value of the character.1251

The way that is specified is by using a percent sign, followed by xx,1264

where xx is two hexadecimal digits representing the hexadecimal ASCII value of the character.1270

So, for example, the name/value pair where we have person as the name and the value as Joe Smith, with a space in between Joe and Smith,1278

to properly encode that to be put in a URL, what it would do is: URL encoding replaces the space with a plus sign.1288

Additionally, let's say we have (and we'll learn about this in the next lesson) a name for an input element that is going to represent an array,1299

and so, it actually has two square brackets--an opening and closing square bracket--as part of the name.1311

Well, those don't fall into the category of the characters allowed, or a space, and so they need to be escaped or encoded.1316

The way they are is using the percent sign syntax.1324

It happens that, for the opening brace, the hexadecimal value is 5B, and for the closing brace, the hexadecimal value is 5D.1327

And so, grades[]=99, would be encoded as this here, which would be grades, the two hexadecimal values, =99.1338

And actually, if we go back to our original form simpleForm.html, we can see that when you use an HTML form1349

to submit GET data, the browser automatically encodes it for you.1364

So, for example, if we were to put as a text field...just put the opening and closing brackets and submit it,1369

and we look up here...well, sometimes--it didn't do it on this one, but sometimes--the browsers show it in user-friendly format,1379

but what it is doing behind the scenes is encoding it as a percent sign followed by two hexadecimal values.1387

Let's see if it shows up down here.1395

And actually, it properly shows up...what is happening is: Firefox is making it user-friendly,1402

and so, it shows the opening and closing brackets as is, so when you look at the URL as a human, it makes sense.1408

But actually, what is happening behind the scenes is: they are being encoded.1414

And if you look at View Source, you can see, under the Request Headers section in the first line, it says GET simpleForm.html.1419

It has the question mark, text1= , and then it has text and the opening and closing brackets encoded as hexadecimal values.1432

So, you can encode URL's if you want to supply information to a script by a query string and do it manually.1453

You can do it manually and just type it into the browser or type it into your code.1463

But PHP also offers a built-in function called urlencode, and what that will do is: it will reduce the amount of errors that you make,1469

because you may forget the ASCII hexadecimal value for an open bracket, for example.1477

Well, by using the urlencode method provided by PHP, what that is going to do is: you supply it with a string1483

that you want to be appended as a query string, and any characters (such as spaces or other characters like opening and closing brackets)1491

that need to be encoded--it does that for you.1500

The format for it is like a few other functions we have had experience with, like var_dump and print_r.1504

The function is called urlencode; you simple type urlencode, and it has a pair of opening and closing parentheses.1512

And within those parentheses, you include a string delimited by single quotes or double quotes.1519

What that is going to do is output the URL-encoded version of that string.1526

For example, if we call this method here, urlencode, with comments=Here, space, are, space, comments,1532

the urlencode is going to return a string that looks like this.1539

What you can see is: it encoded the URL by replacing the spaces with plus signs.1544

Let's take a look at another script that demonstrates this.1552

Here is a script called urlEncodingTest.php, and it has a form that uses the GET method to submit data.1561

For example, I could type Matthew and click submit, and if we look up at the top of the browser,1570

we can see the name associated with that text box is textSample, and it has been set equal to the value matthew.1578

That is how to do it in an HTML form; we also have down here a URL-encoded link, which if we click on it,1587

you can see that it says, "sampleText=Here+is+some+sample+text" which is the sentence Here is some sample text encoded.1599

Basically, the way we have done that is: this is a PHP file, and if we go and look at it in our text editor,1610

we can see at the top here that this is just the form that we use to demonstrate the GET method.1620

But also, what we have done here in PHP land is: we have created an anchor tag1627

and set the URL equal to urlEncodingTest.php, which is the current script.1636

And we create a question mark, and then add the name of the name/value pair that we want to submit to this script.1643

And what we have done is: then we append...because urlencode outputs a URL-encoded string, we pass it the variable sampleText,1654

which is equal to this string up here, "Here is some sample text."1665

urlencode is going to replace all of the spaces with plus signs, and it is going to add it to this string.1669

Here, we just close out the anchor tag and name it URL Encoded Link.1674

So, if we actually go back and look at the file in the browser and view the source, we can see that1683

this link, which was generated in our PHP code section, has taken that sample text "Here is some sample text" and properly encoded it, using + signs.1696

That is an example of how the urlencode method works.1707

What it basically does is: it is a way to keep you from making errors, if you are trying to manually insert query strings1710

within some of your PHP files or HTML files.1719

Today's homework challenge is going to relate to that.1727

Basically, I just want to have you create a script called processName.php, and in that script, in the PHP section of the script,1730

I want you to create an anchor tag with an href attribute and append a query string to it, just like we have done in the previous example.1739

And whatever query string you decide to use, you can assign a name to it--you can call it name, for example.1752

You can hard-code that into your PHP.1769

And then, what I want you to do is use, as a value for name, your first and last names, separated by a space.1771

And then, I want you to use the urlencode method to properly encode your name: that includes a space.1779

Now, if it is done correctly, what is going to happen is: when you load the page and click on the link, and you refresh the page,1787

you are not going to see anything change in the page, because the form doesn't actually process any of the data.1796

But you will see, at the top of the screen, in the address bar, the question mark followed by name= ,1801

and it will have your name properly encoded with a plus sign for the space.1806

That ends today's lecture; thank you for watching Educator.com, and I look forward to seeing you next time.1813

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.