Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Preface
Audience
Assumptions This Book Makes
Organization of This Book
Supporting Books
Conventions Used in This Book
Using Code Examples
O’Reilly Safari
How to Contact Us
Acknowledgments
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
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 FTP
Using a Program Editor
Using an IDE
Questions
3. Introduction to PHP
Incorporating PHP Within HTML
This Book’s Examples
The Structure of PHP
Using Comments
Basic Syntax
Semicolons
The $ symbol
Variables
String variables
Numeric variables
Arrays
Two-dimensional arrays
Variable-naming rules
Operators
Arithmetic operators
Assignment operators
Comparison operators
Logical operators
Variable Assignment
Variable incrementing and decrementing
String concatenation
String types
Escaping characters
Multiple-Line Commands
Variable Typing
Constants
Predefined Constants
The Difference Between the echo and print Commands
Functions
Variable Scope
Local variables
Global variables
Static variables
Superglobal variables
Superglobals and security
Questions
4. Expressions and Control Flow in PHP
Expressions
TRUE or FALSE?
Literals and Variables
Operators
Operator Precedence
Associativity
Relational Operators
Equality
Comparison operators
Logical operators
Conditionals
The if Statement
The else Statement
The elseif Statement
The switch Statement
Breaking out
Default action
Alternative syntax
The ? 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
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
The parent keyword
Subclass constructors
Final methods
Questions
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
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
Using $_FILES
Validation
System Calls
XHTML or HTML5?
Questions
8. Introduction to MySQL
MySQL Basics
Summary of Database Terms
Accessing MySQL via the Command Line
Starting the Command-Line Interface
Windows users
macOS users
Linux users
MySQL on a remote server
Using the Command-Line Interface
The semicolon
Canceling a command
MySQL Commands
Creating a database
Creating users
Creating a table
Data Types
The CHAR data type
The BINARY data type
The TEXT data types
The BLOB data types
Numeric data types
DATE and TIME types
The AUTO_INCREMENT attribute
Adding data to a table
Renaming a table
Changing the data type of a column
Adding a new column
Renaming a column
Removing a column
Deleting a table
Indexes
Creating an Index
Using CREATE INDEX
Adding indexes when creating tables
Primary keys
Creating a FULLTEXT index
Querying a MySQL Database
SELECT
SELECT COUNT
SELECT DISTINCT
DELETE
WHERE
LIMIT
MATCH...AGAINST
MATCH...AGAINST in Boolean mode
UPDATE...SET
ORDER BY
GROUP BY
Joining Tables Together
NATURAL JOIN
JOIN...ON
Using AS
Using Logical Operators
MySQL Functions
Accessing MySQL via phpMyAdmin
Questions
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
Backing up a single table
Backing up all tables
Restoring from a Backup File
Dumping Data in CSV Format
Planning Your Backups
Questions
10. Accessing MySQL Using PHP
Querying a MySQL Database with PHP
The Process
Creating a Login File
Connecting to a MySQL Database
Building and executing a query
Fetching a result
Fetching a row
Closing a connection
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
Using insert IDs
Performing Additional Queries
Preventing Hacking Attempts
Steps You Can Take
Using Placeholders
Preventing HTML Injection
Using mysqli Procedurally
Questions
11. Form Handling
Building Forms
Retrieving Submitted Data
Default Values
Input Types
Text boxes
Text areas
Checkboxes
Radio buttons
Hidden fields
<select>
Labels
The submit button
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
12. Cookies, Sessions, and Authentication
Using Cookies in PHP
Setting a Cookie
Accessing a Cookie
Destroying a Cookie
HTTP Authentication
Storing Usernames and Passwords
Using password_hash
Using password_verify
An Example Program
Using Sessions
Starting a Session
Ending a Session
Setting a Timeout
Session Security
Preventing session hijacking
Preventing session fixation
Forcing cookie-only sessions
Using a shared server
Questions
13. 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
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
14. Expressions and Control Flow in JavaScript
Expressions
Literals and Variables
Operators
Operator Precedence
Associativity
Relational Operators
Equality operators
Comparison operators
Logical operators
The with Statement
Using onerror
Using try...catch
Conditionals
The if Statement
The else Statement
The switch Statement
Breaking out
Default action
The ? Operator
Looping
while Loops
do...while Loops
for Loops
Breaking Out of a Loop
The continue Statement
Explicit Casting
Questions
15. JavaScript Functions, Objects, and Arrays
JavaScript Functions
Defining a Function
The arguments array
Returning a Value
Returning an Array
JavaScript Objects
Declaring a Class
Creating an Object
Accessing Objects
The prototype Keyword
Static methods and properties
Extending JavaScript objects
JavaScript Arrays
Numeric Arrays
Assigning element values
Assignment using the array keyword
Associative Arrays
Multidimensional Arrays
Using Array Methods
some
indexOf
concat
forEach
join
push and pop
Using reverse
sort
Questions
16. JavaScript and PHP Validation and Error Handling
Validating User Input with JavaScript
The validate.html Document (Part 1)
The validate.html Document (Part 2)
Validating the forename
Validating the surname
Validating the username
Validating the password
Validating the age
Validating the email
Using a separate JavaScript file
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
17. Using Asynchronous Communication
What Is Asynchronous Communication?
Using XMLHttpRequest
Your First Asynchronous Program
The readyState property
The server half of the asynchronous process
Using GET Instead of POST
Sending XML Requests
About XML
Why use XML?
Using Frameworks for Asynchronous Communication
Questions
18. 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
Calculating specificity
Using a different number base
Some rules are more equal than others
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
19. Advanced CSS with CSS3
Attribute Selectors
Matching Parts of Strings
The ^= operator
The $= operator
The *= operator
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
20. 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
Passing a string
Repeating timeouts
Canceling a Timeout
Using setInterval
Using the function
Canceling an interval
Using Interrupts for Animation
Questions
21. Introduction to jQuery
Why jQuery?
Including jQuery
Choosing the Right Version
Different flavors of jQuery
Compressed or editable
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
Method chaining
Using callbacks
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
Using a filter
Selecting all ancestor 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
22. Introduction to jQuery Mobile
Including jQuery Mobile
Getting Started
Linking Pages
Linking Synchronously
Linking Within a Multipage Document
Page Transitions
Loading a page as a dialog
Styling Buttons
List Handling
Filterable Lists
List Dividers
What Next?
Questions
23. Introduction to HTML5
The Canvas
Geolocation
Audio and Video
Forms
Local Storage
Web Workers
Microdata
Questions
24. 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 data array
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
25. HTML5 Audio and Video
About Codecs
The <audio> Element
Supporting Non-HTML5 Browsers
The <video> Element
The Video Codecs
Supporting Older Browsers
Questions
26. 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
27. 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
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
B. Online Resources
PHP Resource Sites
MySQL Resource Sites
JavaScript Resource Sites
CSS Resource Sites
HTML5 Resource Sites
Asynchronous Communication Resource Sites
Miscellaneous Resource Sites
C. MySQL’s FULLTEXT Stopwords
D. MySQL Functions
String Functions
Date Functions
Time Functions
E. jQuery Selectors, Objects, and Methods
jQuery Selectors
jQuery Objects
jQuery Methods
Index
← Prev
Back
Next →
← Prev
Back
Next →