Muutke küpsiste eelistusi

E-raamat: PHP and MySQL Web Development

  • Formaat: 688 pages
  • Sari: Developer's Library
  • Ilmumisaeg: 27-Sep-2016
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • Keel: eng
  • ISBN-13: 9780133038651
Teised raamatud teemal:
  • Formaat - PDF+DRM
  • Hind: 26,90 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 688 pages
  • Sari: Developer's Library
  • Ilmumisaeg: 27-Sep-2016
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • Keel: eng
  • ISBN-13: 9780133038651
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

PHP and MySQL Web Development, Fifth Edition

The definitive guide to building database-driven Web applications with PHP and MySQL







PHP and MySQL are popular open-source technologies that are ideal for quickly developing database-driven Web applications. PHP is a powerful scripting language designed to enable developers to create highly featured Web applications quickly, and MySQL is a fast, reliable database that integrates well with PHP and is suited for dynamic Internet-based applications.







PHP and MySQL Web Development shows how to use these tools together to produce effective, interactive Web applications. It clearly describes the basics of the PHP language, explains how to set up and work with a MySQL database, and then shows how to use PHP to interact with the database and the server.







This practical, hands-on book consistently focuses on real-world applications, even in the introductory chapters. The authors cover important aspects of security and authentication as they relate to building a real-world website and show you how to implement these aspects in PHP and MySQL. They also introduce you to the integration of front-end and back-end technologies by using JavaScript in your application development.







The final part of this book describes how to approach real-world projects and takes the reader through the design, planning, and building of several projects, including:





User authentication and personalization Web-based email Social media integration Shopping cart

The fifth edition of PHP and MySQL Web Development has been thoroughly updated, revised, and expanded to cover developments in PHP through versions 5.6 and 7, as well as features introduced in recent stable releases of MySQL.







Free Access to Web Edition







Purchase of this book in any format, electronic or print, includes free access to the corresponding Web Edition. The Web Edition can be viewed on all types of computers and mobile devices with any modern web browser that supports HTML5.

Contents at a Glance







Part I: Using PHP

1  PHP Crash Course

2  Storing and Retrieving Data

3  Using Arrays

4  String Manipulation and Regular Expressions

5  Reusing Code and Writing Functions

6  Object-Oriented PHP

7  Error and Exception Handling







Part II: Using MySQL

8  Designing Your Web Database

9  Creating Your Web Database

10 Working with Your MySQL Database

11 Accessing Your MySQL Database from the Web with PHP

12 Advanced MySQL Administration

13 Advanced MySQL Programming







Part III: Web Application Security

14 Web Application Security Risks

15 Building a Secure Web Application

16 Implementing Authentication Methods with PHP







Part IV: Advanced PHP Techniques

17 Interacting with the File System and the Server

18 Using Network and Protocol Functions

19 Managing the Date and Time

20 Internationalization and Localization

21 Generating Images

22 Using Session Control in PHP

23 Integrating JavaScript and PHP

24 Other Useful Features







Part V: Building Practical PHP and MySQL Projects

25 Using PHP and MySQL for Large Projects

26 Debugging and Logging

27 Building User Authentication and Personalization

28 (PDF with Product Registration) Building a Web-Based Email Client with Laravel Part I

29 (PDF with Product Registration) Building a Web-Based Email Client with Laravel Part II

30 (PDF with Product Registration) Social Media Integration Sharing and Authentication

31 (PDF with Product Registration) Building a Shopping Cart







Part VI: Appendix

A Installing Apache, PHP, and MySQL
Introduction 1(10)
I Using PHP
1 PHP Crash Course
11(42)
Before You Begin: Accessing PHP
12(1)
Creating a Sample Application: Bob's Auto Parts
12(2)
Creating the Order Form
12(2)
Processing the Form
14(1)
Embedding PHP in HTML
14(4)
PHP Tags
16(1)
PHP Statements
16(1)
Whitespace
17(1)
Comments
17(1)
Adding Dynamic Content
18(2)
Calling Functions
19(1)
Using the date() Function
19(1)
Accessing Form Variables
20(3)
Form Variables
20(2)
String Concatenation
22(1)
Variables and Literals
23(1)
Understanding Identifiers
23(1)
Examining Variable Types
24(2)
PHP's Data Types
24(1)
Type Strength
25(1)
Type Casting
25(1)
Variable Variables
25(1)
Declaring and Using Constants
26(1)
Understanding Variable Scope
27(1)
Using Operators
28(8)
Arithmetic Operators
28(1)
String Operators
29(1)
Assignment Operators
29(2)
Comparison Operators
31(1)
Logical Operators
32(1)
Bitwise Operators
33(1)
Other Operators
33(3)
Working Out the Form Totals
36(1)
Understanding Precedence and Associativity
37(2)
Using Variable Handling Functions
39(2)
Testing and Setting Variable Types
39(1)
Testing Variable Status
40(1)
Reinterpreting Variables
41(1)
Making Decisions with Conditionals
41(5)
if Statements
41(1)
Code Blocks
42(1)
else Statements
42(1)
elseif Statements
43(1)
switch Statements
44(1)
Comparing the Different Conditionals
45(1)
Repeating Actions Through Iteration
46(4)
while Loops
47(2)
for and foreach Loops
49(1)
do ...while Loops
50(1)
Breaking Out of a Control Structure or Script
50(1)
Employing Alternative Control Structure Syntax
51(1)
Using declare
51(1)
Next
52(1)
2 Storing and Retrieving Data
53(22)
Saving Data for Later
53(1)
Storing and Retrieving Bob's Orders
54(1)
Processing Files
55(1)
Opening a File
55(6)
Choosing File Modes
55(1)
Using f open() to Open a File
56(2)
Opening Files Through FTP or HTTP
58(1)
Addressing Problems Opening Files
58(3)
Writing to a File
61(2)
Parameters for fwrite()
62(1)
File Formats
62(1)
Closing a File
63(2)
Reading from a File
65(4)
Opening a File for Reading: fopen()
66(1)
Knowing When to Stop: feof()
66(1)
Reading a Line at a Time: fgets(), fgetss(), and fgetcsv()
67(1)
Reading the Whole File: readfile(), fpassthru(), file(), and file_get_contents()
68(1)
Reading a Character: fgetc()
69(1)
Reading an Arbitrary Length: fread()
69(1)
Using Other File Functions
69(2)
Checking Whether a File Is There: fileexists()
70(1)
Determining How Big a File Is: filesize()
70(1)
Deleting a File: unlink()
70(1)
Navigating Inside a File: rewind() , f seek() , and f tell()
70(1)
Locking Files
71(2)
A Better Way: Databases
73(1)
Problems with Using Flat Files
73(1)
How RDBMSs Solve These Problems
74(1)
Further Reading
74(1)
Next
74(1)
3 Using Arrays
75(26)
What Is an Array?
75(1)
Numerically Indexed Arrays
76(3)
Initializing Numerically Indexed Arrays
76(1)
Accessing Array Contents
77(1)
Using Loops to Access the Array
78(1)
Arrays with Different Indices
79(2)
Initializing an Array
79(1)
Accessing the Array Elements
79(1)
Using Loops
79(2)
Array Operators
81(1)
Multidimensional Arrays
82(3)
Sorting Arrays
85(2)
Using sort()
85(1)
Using asort() and ksort() to Sort Arrays
86(1)
Sorting in Reverse
87(1)
Sorting Multidimensional Arrays
87(3)
Using the array_multisort() function
87(1)
User-Defined Sorts
88(1)
Reverse User Sorts
89(1)
Reordering Arrays
90(2)
Using shuffle()
90(2)
Reversing an Array
92(1)
Loading Arrays from Files
92(4)
Performing Other Array Manipulations
96(4)
Navigating Within an Array: each(), current(), reset(), end(), next(), pos(), and prey()
96(1)
Applying Any Function to Each Element in an Array: array_walk()
97(1)
Counting Elements in an Array: count(), sizeof(), and array count values()
98(1)
Converting Arrays to Scalar Variables: extract()
99(1)
Further Reading
100(1)
Next
100(1)
4 String Manipulation and Regular Expressions
101(30)
Creating a Sample Application: Smart Form Mail
101(3)
Formatting Strings
104(8)
Trimming Strings: chop() , ltrim(), and trim()
104(1)
Formatting Strings for Output
105(7)
Joining and Splitting Strings with String Functions
112(3)
Using explod(), implode(), and join()
112(1)
Using strtok()
113(1)
Using substr()
114(1)
Comparing Strings
115(1)
Performing String Ordering: strcmp(), strcasecmp(), and strnatcmp()
115(1)
Testing String Length with strlen()
115(1)
Matching and Replacing Substrings with String Functions
116(3)
Finding Strings in Strings: strstr(), strchr(), strrchr(), and stristr()
116(1)
Finding the Position of a Substring: strpos() and st rrpos()
117(1)
Replacing Substrings: str_replace() and substrreplace()
118(1)
Introducing Regular Expressions
119(9)
The Basics
120(1)
Delimiters
120(1)
Character Classes and Types
120(2)
Repetition
122(1)
Subexpressions
122(1)
Counted Subexpressions
123(1)
Anchoring to the Beginning or End of a String
123(1)
Branching
123(1)
Matching Literal Special Characters
123(1)
Reviewing Meta Characters
124(1)
Escape Sequences
125(1)
Backreferences
126(1)
Assertions
126(1)
Putting It All Together for the Smart Form
127(1)
Finding Substrings with Regular Expressions
128(1)
Replacing Substrings with Regular Expressions
129(1)
Splitting Strings with Regular Expressions
129(1)
Further Reading
130(1)
Next
130(1)
5 Reusing Code and Writing Functions
131(28)
The Advantages of Reusing Code
131(1)
Cost
132(1)
Reliability
132(1)
Consistency
132(1)
Using require() and include()
132(8)
Using require() to Include Code
133(1)
Using require() for Website Templates
134(5)
Using auto_prepend_file and auto_append_file
139(1)
Using Functions in PHP
140(4)
Calling Functions
141(1)
Calling an Undefined Function
142(1)
Understanding Case and Function Names
143(1)
Defining Your Own Functions
144(1)
Examining Basic Function Structure
144(2)
Naming Your Function
145(1)
Using Parameters
146(2)
Understanding Scope
148(2)
Passing by Reference Versus Passing by Value
150(2)
Using the return Keyword
152(2)
Returning Values from Functions
153(1)
Implementing Recursion
154(3)
Implementing Anonymous Functions (or Closures)
155(2)
Further Reading
157(1)
Next
157(2)
6 Object-Oriented PHP
159(40)
Understanding Object-Oriented Concepts
160(2)
Classes and Objects
160(1)
Polymorphism
161(1)
Inheritance
161(1)
Creating Classes, Attributes, and Operations in PHP
162(1)
Structure of a Class
162(1)
Constructors
163(1)
Destructors
163(1)
Instantiating Classes
163(1)
Using Class Attributes
164(1)
Calling Class Operations
165(1)
Controlling Access with private and public
166(1)
Writing Accessor Functions
166(2)
Implementing Inheritance in PHP
168(6)
Controlling Visibility Through Inheritance with private and protected
169(1)
Overriding
170(2)
Preventing Inheritance and Overriding with final
172(1)
Understanding Multiple Inheritance
172(1)
Implementing Interfaces
173(1)
Using Traits
174(2)
Designing Classes
176(1)
Writing the Code for Your Class
177(8)
Understanding Advanced Object-Oriented Functionality in PHP
185(13)
Using Per-Class Constants
185(1)
Implementing Static Methods
185(1)
Checking Class Type and Type Hinting
185(1)
Late Static Bindings
186(1)
Cloning Objects
187(1)
Using Abstract Classes
188(1)
Overloading Methods with call()
188(1)
Using autoload()
189(1)
Implementing Iterators and Iteration
190(2)
Generators
192(2)
Converting Your Classes to Strings
194(1)
Using the Reflection API
194(1)
Namespaces
195(2)
Using Subnamespaces
197(1)
Understanding the Global Namespace
197(1)
Importing and Aliasing Namespaces
198(1)
Next
198(1)
7 Error and Exception Handling
199(10)
Exception Handling Concepts
199(2)
The Exception Class
201(1)
User-Defined Exceptions
202(2)
Exceptions in Bob's Auto Parts
204(4)
Exceptions and PHP's Other Error Handling Mechanisms
208(1)
Further Reading
208(1)
Next
208(1)
II Using MySQL
8 Designing Your Web Database
209(12)
Relational Database Concepts
210(3)
Tables
210(1)
Columns
211(1)
Rows
211(1)
Values
211(1)
Keys
211(1)
Schemas
212(1)
Relationships
213(1)
Designing Your Web Database
213(5)
Think About the Real-World Objects You Are Modeling
213(1)
Avoid Storing Redundant Data
214(2)
Use Atomic Column Values
216(1)
Choose Sensible Keys
217(1)
Think About What You Want to Ask the Database
217(1)
Avoid Designs with Many Empty Attributes
217(1)
Summary of Table Types
218(1)
Web Database Architecture
218(2)
Further Reading
220(1)
Next
220(1)
9 Creating Your Web Database
221(26)
Using the MySQL Monitor
222(1)
Logging In to MySQL
223(1)
Creating Databases and Users
224(1)
Setting Up Users and Privileges
225(1)
Introducing MySQL's Privilege System
225(6)
Principle of Least Privilege
225(1)
User Setup: The CREATE USER and GRANT Commands
225(2)
Types and Levels of Privileges
227(3)
The REVOKE Command
230(1)
Examples Using GRANT and REVOKE
230(1)
Setting Up a User for the Web
231(1)
Using the Right Database
232(1)
Creating Database Tables
232(7)
Understanding What the Other Keywords Mean
234(1)
Understanding the Column Types
235(2)
Looking at the Database with SHOW and DESCRIBE
237(1)
Creating Indexes
238(1)
Understanding MySQL Identifiers
239(1)
Choosing Column Data Types
240(6)
Numeric Types
241(2)
Date and Time Types
243(1)
String Types
244(2)
Further Reading
246(1)
Next
246(1)
10 Working with Your MySQL Database
247(24)
What Is SQL?
247(1)
Inserting Data into the Database
248(2)
Retrieving Data from the Database
250(15)
Retrieving Data with Specific Criteria
251(2)
Retrieving Data from Multiple Tables
253(6)
Retrieving Data in a Particular Order
259(1)
Grouping and Aggregating Data
259(2)
Choosing Which Rows to Return
261(1)
Using Subqueries
262(3)
Updating Records in the Database
265(1)
Altering Tables After Creation
265(3)
Deleting Records from the Database
268(1)
Dropping Tables
268(1)
Dropping a Whole Database
268(1)
Further Reading
269(1)
Next
269(2)
11 Accessing Your MySQL Database from the Web with PHP
271(20)
How Web Database Architectures Work
272(3)
Querying a Database from the Web
275(7)
Checking and Filtering Input Data
276(1)
Setting Up a Connection
277(1)
Choosing a Database to Use
278(1)
Querying the Database
278(1)
Using Prepared Statements
279(1)
Retrieving the Query Results
280(1)
Disconnecting from the Database
281(1)
Putting New Information in the Database
282(4)
Using Other PHP-Database Interfaces
286(3)
Using a Generic Database Interface: PDO
286(3)
Further Reading
289(1)
Next
289(2)
12 Advanced MySQL Administration
291(24)
Understanding the Privilege System in Detail
291(8)
The user Table
293(2)
The db Table
295(1)
The tables_priv, columns priv, and procs priv Tables
296(2)
Access Control: How MySQL Uses the Grant Tables
298(1)
Updating Privileges: When Do Changes Take Effect?
299(1)
Making Your MySQL Database Secure
299(2)
MySQL from the Operating System's Point of View
299(1)
Passwords
300(1)
User Privileges
300(1)
Web Issues
301(1)
Getting More Information About Databases
301(8)
Getting Information with SHOW
302(2)
Getting Information About Columns with DESCRIBE
304(1)
Understanding How Queries Work with EXPLAIN
304(5)
Optimizing Your Database
309(1)
Design Optimization
309(1)
Permissions
309(1)
Table Optimization
310(1)
Using Indexes
310(1)
Using Default Values
310(1)
Other Tips
310(1)
Backing Up Your MySQL Database
310(1)
Restoring Your MySQL Database
311(1)
Implementing Replication
311(3)
Setting Up the Master
312(1)
Performing the Initial Data Transfer
313(1)
Setting Up the Slave or Slaves
313(1)
Further Reading
314(1)
Next
314(1)
13 Advanced MySQL Programming
315(16)
The LOAD DATA INFILE Statement
315(1)
Storage Engines
316(1)
Transactions
317(2)
Understanding Transaction Definitions
317(1)
Using Transactions with InnoDB
318(1)
Foreign Keys
319(1)
Stored Procedures
320(7)
Basic Example
320(3)
Local Variables
323(1)
Cursors and Control Structures
323(4)
Triggers
327(2)
Further Reading
329(1)
Next
329(2)
III Web Application Security
14 Web Application Security Risks
331(10)
Identifying the Threats We Face
331(8)
Access to Sensitive Data
331(3)
Modification of Data
334(1)
Loss or Destruction of Data
334(1)
Denial of Service
335(2)
Malicious Code Injection
337(1)
Compromised Server
338(1)
Repudiation
338(1)
Understanding Who We're Dealing With
339(1)
Attackers and Crackers
339(1)
Unwitting Users of Infected Machines
339(1)
Disgruntled Employees
339(1)
Hardware Thieves
340(1)
Ourselves
340(1)
Next
340(1)
15 Building a Secure Web Application
341(24)
Strategies for Dealing with Security
341(2)
Start with the Right Mindset
342(1)
Balancing Security and Usability
342(1)
Monitoring Security
342(1)
Our Basic Approach
343(1)
Securing Your Code
343(11)
Filtering User Input
343(5)
Escaping Output
348(2)
Code Organization
350(1)
What Goes in Your Code
351(1)
File System Considerations
352(1)
Code Stability and Bugs
352(1)
Executing Commands
353(1)
Securing Your Web Server and PHP
354(3)
Keep Software Up-to-Date
354(1)
Browse the php.ini file
355(1)
Web Server Configuration
356(1)
Shared Hosting of Web Applications
356(1)
Database Server Security
357(3)
Users and the Permissions System
358(1)
Sending Data to the Server
358(1)
Connecting to the Server
359(1)
Running the Server
359(1)
Protecting the Network
360(1)
Firewalls
360(1)
Use a DMZ
360(1)
Prepare for DoS and DDoS Attacks
361(1)
Computer and Operating System Security
361(1)
Keep the Operating System Up to Date
361(1)
Run Only What Is Necessary
362(1)
Physically Secure the Server
362(1)
Disaster Planning
362(2)
Next
364(1)
16 Implementing Authentication Methods with PHP
365(14)
Identifying Visitors
365(1)
Implementing Access Control
366(6)
Storing Passwords
369(1)
Securing Passwords
369(2)
Protecting Multiple Pages
371(1)
Using Basic Authentication
372(1)
Using Basic Authentication in PHP
372(2)
Using Basic Authentication with Apache's .htaccess Files
374(3)
Creating Your Own Custom Authentication
377(1)
Further Reading
377(1)
Next
377(2)
IV Advanced PHP Techniques
17 Interacting with the File System and the Server
379(24)
Uploading Files
379(11)
HTML for File Upload
381(1)
Writing the PHP to Deal with the File
382(5)
Session Upload Progress
387(2)
Avoiding Common Upload Problems
389(1)
Using Directory Functions
390(5)
Reading from Directories
390(4)
Getting Information About the Current Directory
394(1)
Creating and Deleting Directories
394(1)
Interacting with the File System
395(3)
Getting File Information
395(2)
Changing File Properties
397(1)
Creating, Deleting, and Moving Files
398(1)
Using Program Execution Functions
398(3)
Interacting with the Environment: getenv() and putenv()
401(1)
Further Reading
402(1)
Next
402(1)
18 Using Network and Protocol Functions
403(20)
Examining Available Protocols
403(1)
Sending and Reading Email
404(1)
Using Data from Other Websites
404(4)
Using Network Lookup Functions
408(4)
Backing Up or Mirroring a File
412(9)
Using FTP to Back Up or Mirror a File
412(8)
Uploading Files
420(1)
Avoiding Timeouts
420(1)
Using Other FTP Functions
420(1)
Further Reading
421(1)
Next
421(2)
19 Managing the Date and Time
423(14)
Getting the Date and Time from PHP
423(8)
Understanding Timezones
423(1)
Using the date() Function
424(2)
Dealing with Unix Timestamps
426(1)
Using the getdate() Function
427(1)
Validating Dates with checkdate()
428(1)
Formatting Timestamps
429(2)
Converting Between PHP and MySQL Date Formats
431(2)
Calculating Dates in PHP
433(1)
Calculating Dates in MySQL
434(1)
Using Microseconds
435(1)
Using the Calendar Functions
436(1)
Further Reading
436(1)
Next
436(1)
20 Internationalization and Localization
437(12)
Localization Is More than Translation
437(1)
Understanding Character Sets
438(2)
Security Implications of Character Sets
439(1)
Using Multibyte String Functions in PHP
440(1)
Creating a Basic Localizable Page Structure
440(4)
Using gettext() in an Internationalized Application
444(4)
Configuring Your System to Use gettext()
444(1)
Creating Translation Files
445(2)
Implementing Localized Content in PHP Using gettext()
447(1)
Further Reading
448(1)
Next
448(1)
21 Generating Images
449(26)
Setting Up Image Support in PHP
449(1)
Understanding Image Formats
450(1)
JPEG
450(1)
PNG
450(1)
GIF
451(1)
Creating Images
451(5)
Creating a Canvas Image
452(1)
Drawing or Printing Text on the Image
453(2)
Outputting the Final Graphic
455(1)
Cleaning Up
455(1)
Using Automatically Generated Images in Other Pages
456(1)
Using Text and Fonts to Create Images
457(8)
Setting Up the Base Canvas
460(1)
Fitting the Text onto the Button
461(3)
Positioning the Text
464(1)
Writing the Text onto the Button
464(1)
Finishing Up
465(1)
Drawing Figures and Graphing Data
465(9)
Using Other Image Functions
474(1)
Next
474(1)
22 Using Session Control in PHP
475(18)
What Is Session Control?
475(1)
Understanding Basic Session Functionality
476(2)
What Is a Cookie?
476(1)
Setting Cookies from PHP
476(1)
Using Cookies with Sessions
477(1)
Storing the Session ID
477(1)
Implementing Simple Sessions
478(2)
Starting a Session
478(1)
Registering Session Variables
478(1)
Using Session Variables
479(1)
Unsetting Variables and Destroying the Session
479(1)
Creating a Simple Session Example
480(2)
Configuring Session Control
482(1)
Implementing Authentication with Session Control
483(8)
Next
491(2)
23 Integrating JavaScript and PHP
493(26)
Understanding AJAX
493(1)
A Brief Introduction to jQuery
494(1)
Using jQuery in Web Applications
494(10)
Using jQuery and AJAX with PHP
504(13)
The AJAX-Enabled Chat Script/Server
504(3)
The jQuery AJAX Methods
507(3)
The Chat Client/jQuery Application
510(7)
Further Reading
517(1)
Next
517(2)
24 Other Useful Features
519(10)
Evaluating Strings: eval()
519(1)
Terminating Execution: die() and exit()
520(1)
Serializing Variables and Objects
521(1)
Getting Information About the PHP Environment
522(2)
Finding Out What Extensions Are Loaded
522(1)
Identifying the Script Owner
523(1)
Finding Out When the Script Was Modified
523(1)
Temporarily Altering the Runtime Environment
524(1)
Highlighting Source Code
525(1)
Using PHP on the Command Line
526(1)
Next
527(2)
V Building Practical PHP and MySQL Projects
25 Using PHP and MySQL for Large Projects
529(14)
Applying Software Engineering to Web Development
530(1)
Planning and Running a Web Application Project
530(1)
Reusing Code
531(1)
Writing Maintainable Code
532(4)
Coding Standards
532(3)
Breaking Up Code
535(1)
Using a Standard Directory Structure
536(1)
Documenting and Sharing In-House Functions
536(1)
Implementing Version Control
536(1)
Choosing a Development Environment
537(1)
Documenting Your Projects
538(1)
Prototyping
538(1)
Separating Logic and Content
539(1)
Optimizing Code
540(1)
Using Simple Optimizations
540(1)
Testing
541(1)
Further Reading
542(1)
Next
542(1)
26 Debugging and Logging
543(18)
Programming Errors
543(8)
Syntax Errors
543(1)
Runtime Errors
544(5)
Logic Errors
549(2)
Variable Debugging Aid
551(2)
Error Reporting Levels
553(1)
Altering the Error Reporting Settings
554(2)
Triggering Your Own Errors
556(1)
Logging Errors Gracefully
557(3)
Logging Errors to a Log File
560(1)
Next
560(1)
27 Building User Authentication and Personalization
561(38)
Solution Components
561(2)
User Identification and Personalization
562(1)
Storing Bookmarks
563(1)
Recommending Bookmarks
563(1)
Solution Overview
563(2)
Implementing the Database
565(1)
Implementing the Basic Site
566(3)
Implementing User Authentication
569(18)
Registering Users
569(6)
Logging In
575(4)
Logging Out
579(1)
Changing Passwords
580(2)
Resetting Forgotten Passwords
582(5)
Implementing Bookmark Storage and Retrieval
587(7)
Adding Bookmarks
588(2)
Displaying Bookmarks
590(1)
Deleting Bookmarks
591(3)
Implementing Recommendations
594(4)
Considering Possible Extensions
598(1)
28 Building a Web-Based Email Service with Laravel Part I Web Edition
29 Building a Web-Based Email Service with Laravel Part II Web Edition
30 Social Media Integration Sharing and Authentication Web Edition
31 Building a Shopping Cart Web Edition
VI Appendix
A Installing Apache, PHP, and MySQL
599(16)
Installing Apache, PHP, and MySQL Under UNIX
600(12)
Binary Installation
600(1)
Source Installation
601(7)
Basic Apache Configuration Modifications
608(2)
Is PHP Support Working?
610(1)
Is SSL Working?
610(2)
Installing Apache, PHP, and MySQL for Windows and Mac OS X Using All-in-One Installation Packages
612(1)
Installing PEAR
613(1)
Installing PHP with Other Web Servers
614(1)
Index 615
Laura Thomson is director of engineering at Mozilla Corporation. She was formerly a principal at both OmniTI and Tangled Web Design, and she has worked for RMIT University and the Boston Consulting Group. She holds a Bachelor of Applied Science (Computer Science) degree and a Bachelor of Engineering (Computer Systems Engineering) degree with honors. Luke Welling is a software engineer and regularly speaks on open source and web development topics at conferences such as OSCON, ZendCon, MySQLUC, PHPCon, OSDC, and LinuxTag. He has worked for OmniTI, for the web analytics company Hitwise.com, at the database vendor MySQL AB, and as an independent consultant at Tangled Web Design. He has taught computer science at RMIT University in Melbourne, Australia, and holds a Bachelor of Applied Science (Computer Science) degree.