Learning PHP, MySQL & JavaScript: A Step-by-Step Guide to Creating Dynamic Websites [6 ed.]
1492093823, 9781492093824
Build interactive, data-driven websites with the potent combination of open source technologies and web standards, even
281
75
15MB
English
Pages 826
[828]
Year 2021
Report DMCA / Copyright
DOWNLOAD PDF FILE
Table of contents :
Copyright
Table of Contents
Preface
Audience
Assumptions This Book Makes
Organization of This Book
Conventions Used in This Book
Using Code Examples
O’Reilly Online Learning
How to Contact Us
Acknowledgments
Chapter 1. Introduction to Dynamic Web Content
HTTP and HTML: Berners-Lee’s Basics
The Request/Response Procedure
The Benefits of PHP, MySQL, JavaScript, CSS, and HTML5
MariaDB: The MySQL Clone
Using PHP
Using MySQL
Using JavaScript
Using CSS
And Then There’s HTML5
The Apache Web Server
Handling Mobile Devices
About Open Source
Bringing It All Together
Questions
Chapter 2. Setting Up a Development Server
What Is a WAMP, MAMP, or LAMP?
Installing AMPPS on Windows
Testing the Installation
Accessing the Document Root (Windows)
Alternative WAMPs
Installing AMPPS on macOS
Accessing the Document Root (macOS)
Installing a LAMP on Linux
Working Remotely
Logging In
Using SFTP or FTPS
Using a Code Editor
Using an IDE
Questions
Chapter 3. Introduction to PHP
Incorporating PHP Within HTML
This Book’s Examples
The Structure of PHP
Using Comments
Basic Syntax
Variables
Operators
Variable Assignment
Multiline Commands
Variable Typing
Constants
Predefined Constants
The Difference Between the echo and print Commands
Functions
Variable Scope
Questions
Chapter 4. Expressions and Control Flow in PHP
Expressions
TRUE or FALSE?
Literals and Variables
Operators
Operator Precedence
Associativity
Relational Operators
Conditionals
The if Statement
The else Statement
The elseif Statement
The switch Statement
The ? (or ternary) Operator
Looping
while Loops
do...while Loops
for Loops
Breaking Out of a Loop
The continue Statement
Implicit and Explicit Casting
PHP Dynamic Linking
Dynamic Linking in Action
Questions
Chapter 5. PHP Functions and Objects
PHP Functions
Defining a Function
Returning a Value
Returning an Array
Passing Arguments by Reference
Returning Global Variables
Recap of Variable Scope
Including and Requiring Files
The include Statement
Using include_once
Using require and require_once
PHP Version Compatibility
PHP Objects
Terminology
Declaring a Class
Creating an Object
Accessing Objects
Cloning Objects
Constructors
Destructors
Writing Methods
Declaring Properties
Declaring Constants
Property and Method Scope
Static Methods
Static Properties
Inheritance
Questions
Chapter 6. PHP Arrays
Basic Access
Numerically Indexed Arrays
Associative Arrays
Assignment Using the array Keyword
The foreach...as Loop
Multidimensional Arrays
Using Array Functions
is_array
count
sort
shuffle
explode
extract
compact
reset
end
Questions
Chapter 7. Practical PHP
Using printf
Precision Setting
String Padding
Using sprintf
Date and Time Functions
Date Constants
Using checkdate
File Handling
Checking Whether a File Exists
Creating a File
Reading from Files
Copying Files
Moving a File
Deleting a File
Updating Files
Locking Files for Multiple Accesses
Reading an Entire File
Uploading Files
System Calls
XHTML or HTML5?
Questions
Chapter 8. Introduction to MySQL
MySQL Basics
Summary of Database Terms
Accessing MySQL via the Command Line
Starting the Command-Line Interface
Using the Command-Line Interface
MySQL Commands
Data Types
Indexes
Creating an Index
Querying a MySQL Database
Joining Tables Together
Using Logical Operators
MySQL Functions
Accessing MySQL via phpMyAdmin
Questions
Chapter 9. Mastering MySQL
Database Design
Primary Keys: The Keys to Relational Databases
Normalization
First Normal Form
Second Normal Form
Third Normal Form
When Not to Use Normalization
Relationships
One-to-One
One-to-Many
Many-to-Many
Databases and Anonymity
Transactions
Transaction Storage Engines
Using BEGIN
Using COMMIT
Using ROLLBACK
Using EXPLAIN
Backing Up and Restoring
Using mysqldump
Creating a Backup File
Restoring from a Backup File
Dumping Data in CSV Format
Planning Your Backups
Questions
Chapter 10. What’s New in PHP 8 and MySQL 8
About This Chapter
PHP 8
Named Parameters
Attributes
Constructor Properties
Just-In-Time Compilation
Union Types
Null-safe Operator
match Expressions
New Functions
MySQL 8
Updates to SQL
JSON (JavaScript Object Notation)
Geography Support
Reliability
Speed and Performance
Management
Security
Questions
Chapter 11. Accessing MySQL Using PHP
Querying a MySQL Database with PHP
The Process
Creating a Login File
Connecting to a MySQL Database
A Practical Example
The $_POST Array
Deleting a Record
Displaying the Form
Querying the Database
Running the Program
Practical MySQL
Creating a Table
Describing a Table
Dropping a Table
Adding Data
Retrieving Data
Updating Data
Deleting Data
Using AUTO_INCREMENT
Performing Additional Queries
Preventing Hacking Attempts
Steps You Can Take
Using Placeholders
Preventing JavaScript Injection into HTML
Questions
Chapter 12. Form Handling
Building Forms
Retrieving Submitted Data
Default Values
Input Types
Sanitizing Input
An Example Program
HTML5 Enhancements
The autocomplete Attribute
The autofocus Attribute
The placeholder Attribute
The required Attribute
Override Attributes
The width and height Attributes
The min and max Attributes
The step Attribute
The form Attribute
The list Attribute
The color Input Type
The number and range Input Types
Date and Time Pickers
Questions
Chapter 13. Cookies, Sessions, and Authentication
Using Cookies in PHP
Setting a Cookie
Accessing a Cookie
Destroying a Cookie
HTTP Authentication
Storing Usernames and Passwords
An Example Program
Using Sessions
Starting a Session
Ending a Session
Setting a Timeout
Session Security
Questions
Chapter 14. Exploring JavaScript
JavaScript and HTML Text
Using Scripts Within a Document Head
Older and Nonstandard Browsers
Including JavaScript Files
Debugging JavaScript Errors
Using Comments
Semicolons
Variables
String Variables
Numeric Variables
Arrays
Operators
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
Incrementing, Decrementing, and Shorthand Assignment
String Concatenation
Escape Characters
Variable Typing
Functions
Global Variables
Local Variables
Using let and const
The Document Object Model
Another Use for the $ Symbol
Using the DOM
About document.write
Using console.log
Using alert
Writing into Elements
Using document.write
Questions
Chapter 15. Expressions and Control Flow in JavaScript
Expressions
Literals and Variables
Operators
Operator Precedence
Associativity
Relational Operators
The with Statement
Using onerror
Using try...catch
Conditionals
The if Statement
The else Statement
The switch Statement
The ? Operator
Looping
while Loops
do...while Loops
for Loops
Breaking Out of a Loop
The continue Statement
Explicit Casting
Questions
Chapter 16. JavaScript Functions, Objects, and Arrays
JavaScript Functions
Defining a Function
Returning a Value
Returning an Array
JavaScript Objects
Declaring a Class
Creating an Object
Accessing Objects
The prototype Keyword
JavaScript Arrays
Numeric Arrays
Associative Arrays
Multidimensional Arrays
Using Array Methods
Questions
Chapter 17. JavaScript and PHP Validation and Error Handling
Validating User Input with JavaScript
The validate.html Document (Part 1)
The validate.html Document (Part 2)
Regular Expressions
Matching Through Metacharacters
Fuzzy Character Matching
Grouping Through Parentheses
Character Classes
Indicating a Range
Negation
Some More Complicated Examples
Summary of Metacharacters
General Modifiers
Using Regular Expressions in JavaScript
Using Regular Expressions in PHP
Redisplaying a Form After PHP Validation
Questions
Chapter 18. Using Asynchronous Communication
What Is Asynchronous Communication?
Using XMLHttpRequest
Your First Asynchronous Program
Using GET Instead of POST
Sending XML Requests
Using Frameworks for Asynchronous Communication
Questions
Chapter 19. Introduction to CSS
Importing a Stylesheet
Importing CSS from Within HTML
Embedded Style Settings
Using IDs
Using Classes
Using Semicolons
CSS Rules
Multiple Assignments
Using Comments
Style Types
Default Styles
User Styles
External Stylesheets
Internal Styles
Inline Styles
CSS Selectors
The Type Selector
The Descendant Selector
The Child Selector
The ID Selector
The Class Selector
The Attribute Selector
The Universal Selector
Selecting by Group
The CSS Cascade
Stylesheet Creators
Stylesheet Methods
Stylesheet Selectors
The Difference Between div and span Elements
Measurements
Fonts and Typography
font-family
font-style
font-size
font-weight
Managing Text Styles
Decoration
Spacing
Alignment
Transformation
Indenting
CSS Colors
Short Color Strings
Gradients
Positioning Elements
Absolute Positioning
Relative Positioning
Fixed Positioning
Pseudoclasses
Shorthand Rules
The Box Model and Layout
Setting Margins
Applying Borders
Adjusting Padding
Object Contents
Questions
Chapter 20. Advanced CSS with CSS3
Attribute Selectors
Matching Parts of Strings
The box-sizing Property
CSS3 Backgrounds
The background-clip Property
The background-origin Property
The background-size Property
Using the auto Value
Multiple Backgrounds
CSS3 Borders
The border-color Property
The border-radius Property
Box Shadows
Element Overflow
Multicolumn Layout
Colors and Opacity
HSL Colors
HSLA Colors
RGB Colors
RGBA Colors
The opacity Property
Text Effects
The text-shadow Property
The text-overflow Property
The word-wrap Property
Web Fonts
Google Web Fonts
Transformations
3D Transformations
Transitions
Properties to Transition
Transition Duration
Transition Delay
Transition Timing
Shorthand Syntax
Questions
Chapter 21. Accessing CSS from JavaScript
Revisiting the getElementById Function
The O Function
The S Function
The C Function
Including the Functions
Accessing CSS Properties from JavaScript
Some Common Properties
Other Properties
Inline JavaScript
The this Keyword
Attaching Events to Objects in a Script
Attaching to Other Events
Adding New Elements
Removing Elements
Alternatives to Adding and Removing Elements
Using Interrupts
Using setTimeout
Canceling a Timeout
Using setInterval
Using Interrupts for Animation
Questions
Chapter 22. Introduction to jQuery
Why jQuery?
Including jQuery
Choosing the Right Version
Downloading
Using a Content Delivery Network
Customizing jQuery
jQuery Syntax
A Simple Example
Avoiding Library Conflicts
Selectors
The css Method
The Element Selector
The ID Selector
The Class Selector
Combining Selectors
Handling Events
Waiting Until the Document Is Ready
Event Functions and Properties
The blur and focus Events
The this Keyword
The click and dblclick Events
The keypress Event
Considerate Programming
The mousemove Event
Other Mouse Events
Alternative Mouse Methods
The submit Event
Special Effects
Hiding and Showing
The toggle Method
Fading In and Out
Sliding Elements Up and Down
Animations
Stopping Animations
Manipulating the DOM
The Difference Between the text and html Methods
The val and attr Methods
Adding and Removing Elements
Dynamically Applying Classes
Modifying Dimensions
The width and height Methods
The innerWidth and innerHeight Methods
The outerWidth and outerHeight Methods
DOM Traversal
Parent Elements
Child Elements
Sibling Elements
Selecting the Next and Previous Elements
Traversing jQuery Selections
The is Method
Using jQuery Without Selectors
The $.each Method
The $.map Method
Using Asynchronous Communication
Using the POST Method
Using the GET Method
Plug-ins
jQuery User Interface
Other Plug-ins
Questions
Chapter 23. Introduction to jQuery Mobile
Including jQuery Mobile
Getting Started
Linking Pages
Linking Synchronously
Linking Within a Multipage Document
Page Transitions
Styling Buttons
List Handling
Filterable Lists
List Dividers
What Next?
Questions
Chapter 24. Introduction to React
What Is the Point of React Anyway?
Accessing the React Files
Including babel.js
Our First React Project
Using a Function Instead of a Class
Pure and Impure Code: A Golden Rule
Using Both a Class and a Function
Props and Components
The Differences Between Using a Class and a Function
React State and Life Cycle
Using Hooks (if You Use Node.js)
Events in React
Inline JSX Conditional Statements
Using Lists and Keys
Unique Keys
Handling Forms
Using Text Input
Using textarea
Using select
React Native
Creating React Native Apps
Further Reading
Taking React to the Next Level
Questions
Chapter 25. Introduction to HTML5
The Canvas
Geolocation
Audio and Video
Forms
Local Storage
Web Workers
Questions
Chapter 26. The HTML5 Canvas
Creating and Accessing a Canvas
The toDataURL Function
Specifying an Image Type
The fillRect Method
The clearRect Method
The strokeRect Method
Combining These Commands
The createLinearGradient Method
The addColorStop Method in Detail
The createRadialGradient Method
Using Patterns for Fills
Writing Text to the Canvas
The strokeText Method
The textBaseline Property
The font Property
The textAlign Property
The fillText Method
The measureText Method
Drawing Lines
The lineWidth Property
The lineCap and lineJoin Properties
The miterLimit Property
Using Paths
The moveTo and lineTo Methods
The stroke Method
The rect Method
Filling Areas
The clip Method
The isPointInPath Method
Working with Curves
The arc Method
The arcTo Method
The quadraticCurveTo Method
The bezierCurveTo Method
Manipulating Images
The drawImage Method
Resizing an Image
Selecting an Image Area
Copying from a Canvas
Adding Shadows
Editing at the Pixel Level
The getImageData Method
The putImageData Method
The createImageData Method
Advanced Graphical Effects
The globalCompositeOperation Property
The globalAlpha Property
Transformations
The scale Method
The save and restore Methods
The rotate Method
The translate Method
The transform Method
The setTransform Method
Questions
Chapter 27. HTML5 Audio and Video
About Codecs
The Element
The Element
The Video Codecs
Questions
Chapter 28. Other HTML5 Features
Geolocation and the GPS Service
Other Location Methods
Geolocation and HTML5
Local Storage
Using Local Storage
The localStorage Object
Web Workers
Drag and Drop
Cross-Document Messaging
Other HTML5 Tags
Questions
Chapter 29. Bringing It All Together
Designing a Social Networking App
On the Website
functions.php
The Functions
header.php
setup.php
index.php
signup.php
Checking for Username Availability
Logging In
checkuser.php
login.php
profile.php
Adding the “About Me” Text
Adding a Profile Image
Processing the Image
Displaying the Current Profile
members.php
Viewing a User’s Profile
Adding and Dropping Friends
Listing All Members
friends.php
messages.php
logout.php
styles.css
javascript.js
Questions
Appendix A. Solutions to the Chapter Questions
Chapter 1 Answers
Chapter 2 Answers
Chapter 3 Answers
Chapter 4 Answers
Chapter 5 Answers
Chapter 6 Answers
Chapter 7 Answers
Chapter 8 Answers
Chapter 9 Answers
Chapter 10 Answers
Chapter 11 Answers
Chapter 12 Answers
Chapter 13 Answers
Chapter 14 Answers
Chapter 15 Answers
Chapter 16 Answers
Chapter 17 Answers
Chapter 18 Answers
Chapter 19 Answers
Chapter 20 Answers
Chapter 21 Answers
Chapter 22 Answers
Chapter 23 Answers
Chapter 24 Answers
Chapter 25 Answers
Chapter 26 Answers
Chapter 27 Answers
Chapter 28 Answers
Chapter 29 Answers
Index
About the Author
Colophon