Learning PHP, MySQL & JavaScript. 6th Edition - Helion
ISBN: 9781492093770
stron: 826, Format: ebook
Data wydania: 2021-07-22
Księgarnia: Helion
Cena książki: 29,90 zł (poprzednio: 213,57 zł)
Oszczędzasz: 86% (-183,67 zł)
Build interactive, data-driven websites with the potent combination of open source technologies and web standards, even if you have only basic HTML knowledge. With the latest edition of this popular hands-on guide, you'll tackle dynamic web programming using the most recent versions of today's core technologies: PHP, MySQL, JavaScript, CSS, HTML5, jQuery, and the powerful React library.
Web designers will learn how to use these technologies together while picking up valuable web programming practices along the way--including how to optimize websites for mobile devices. You'll put everything together to build a fully functional social networking site suitable for both desktop and mobile browsers.
- Explore MySQL from database structure to complex queries
- Use the MySQL PDO extension, PHP's improved MySQL interface
- Create dynamic PHP web pages that tailor themselves to the user
- Manage cookies and sessions and maintain a high level of security
- Enhance JavaScript with the React library
- Use Ajax calls for background browser-server communication
- Style your web pages by acquiring CSS skills
- Implement HTML5 features, including geolocation, audio, video, and the canvas element
- Reformat your websites into mobile web apps
Osoby które kupowały "Learning PHP, MySQL & JavaScript. 6th Edition", wybierały także:
- Cisco CCNA 200-301. Kurs video. Administrowanie bezpieczeństwem sieci. Część 3 665,00 zł, (39,90 zł -94%)
- Cisco CCNA 200-301. Kurs video. Administrowanie urządzeniami Cisco. Część 2 665,00 zł, (39,90 zł -94%)
- Cisco CCNA 200-301. Kurs video. Podstawy sieci komputerowych i konfiguracji. Część 1 665,00 zł, (39,90 zł -94%)
- Impact of P2P and Free Distribution on Book Sales 427,14 zł, (29,90 zł -93%)
- Cisco CCNP Enterprise 350-401 ENCOR. Kurs video. Programowanie i automatyzacja sieci 443,33 zł, (39,90 zł -91%)
Spis treści
Learning PHP, MySQL & JavaScript. 6th Edition eBook -- spis treści
- Preface
- Audience
- Assumptions This Book Makes
- Organization of This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- 1. Introduction to Dynamic Web Content
- HTTP and HTML: Berners-Lees 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 Theres 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 SFTP or FTPS
- Using a Code Editor
- Using an IDE
- Questions
- 3. Introduction to PHP
- Incorporating PHP Within HTML
- This Books 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
- Multiline 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 ? (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
- Expressions
- 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
- PHP Functions
- 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
- Basic Access
- 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
- Using printf
- 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
- Starting the Command-Line Interface
- 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
- Creating an Index
- 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
- Database Design
- 10. Whats 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
- str_contains
- str_starts_with
- str_ends_with
- fdiv
- get_resource_id
- get_debug_type
- preg_last_error_msg
- MySQL 8
- Updates to SQL
- JSON (JavaScript Object Notation)
- Geography Support
- Reliability
- Speed and Performance
- Management
- Security
- Questions
- 11. 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 while specifying the style
- 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 JavaScript Injection into HTML
- Questions
- Querying a MySQL Database with PHP
- 12. 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
- 13. 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
- Storing Usernames and Passwords
- 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
- Using Cookies in PHP
- 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
- JavaScript and HTML Text
- 15. 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
- 16. JavaScript Functions, Objects, and Arrays
- JavaScript Functions
- Defining a Function
- The arguments array
- Returning a Value
- Returning an Array
- Defining a Function
- 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
- Numeric Arrays
- Questions
- JavaScript Functions
- 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)
- 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
- Validating User Input with JavaScript
- 18. 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
- Your First Asynchronous Program
- Questions
- 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
- Calculating specificity
- Using a different number base
- Some rules are more equal than others
- Calculating specificity
- 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
- Importing a Stylesheet
- 20. Advanced CSS with CSS3
- Attribute Selectors
- Matching Parts of Strings
- The ^= operator
- The $= operator
- The *= operator
- 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
- Attribute Selectors
- 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
- Passing a string
- Repeating timeouts
- Canceling a Timeout
- Using setInterval
- Using the function
- Canceling an interval
- Using Interrupts for Animation
- Using setTimeout
- Questions
- Revisiting the getElementById Function
- 22. 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
- Choosing the Right Version
- 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
- Parent Elements
- 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
- 23. 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
- 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
- 25. Introduction to HTML5
- The Canvas
- Geolocation
- Audio and Video
- Forms
- Local Storage
- Web Workers
- Questions
- 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 data array
- The putImageData Method
- The createImageData Method
- The getImageData 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
- Creating and Accessing a Canvas
- 27. HTML5 Audio and Video
- About Codecs
- The <audio> Element
- The <video> Element
- The Video Codecs
- Questions
- 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
- 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 Users Profile
- Adding and Dropping Friends
- Listing All Members
- friends.php
- messages.php
- logout.php
- styles.css
- javascript.js
- Questions
- 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