Thông tin tài liệu
by Janet Valade
PHP & MySQL
®
Everyday Apps
FOR
DUMmIES
‰
01_575872 ffirs.qxd 5/27/05 6:16 PM Page iii
PHP & MySQL
®
Everyday Apps For Dummies
®
Published by
Wiley Publishing, Inc.
111 River Street
Hoboken, NJ 07030-5774
www.wiley.com
Copyright © 2005 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or
by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permit-
ted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written
permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the
Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600.
Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing,
Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at
http://www.wiley.com/go/permissions.
Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the
Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, and related trade
dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United
States and other countries, and may not be used without written permission. MySQL is a registered trade-
mark of MySQL AB Limited Company. All other trademarks are the property of their respective owners.
Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REP-
RESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CON-
TENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT
LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CRE-
ATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CON-
TAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE
UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR
OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A
COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE
AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION
OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FUR-
THER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE INFOR-
MATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR RECOMMENDATIONS IT MAY MAKE.
FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE
CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT IS READ.
For general information on our other products and services, please contact our Customer Care
Department within the U.S. at 800-762-2974, outside the U.S. at 317-572-3993, or fax 317-572-4002.
For technical support, please visit www.wiley.com/techsupport.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may
not be available in electronic books.
Library of Congress Control Number: 2005923782
ISBN-13: 978-0-7645-7587-7
ISBN-10: 0-7645-7587-2
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
1O/SQ/QW/QV/IN
01_575872 ffirs.qxd 5/27/05 6:16 PM Page iv
About the Author
Janet Valade has 20 years of experience in the computing field. Her back-
ground includes work as a technical writer for several companies, as a Web
designer/programmer for an engineering firm, and as a systems analyst in a
university environment where, for over ten years, she supervised the installa-
tion and operation of computing resources, designed and developed a state-
wide data archive, provided technical support to faculty and staff, wrote
numerous technical papers and documentation, and designed and presented
seminars and workshops on a variety of technology topics.
Janet currently has two published books: PHP & MySQL For Dummies, 2nd
Edition, and PHP 5 For Dummies. In addition, she has authored chapters for
several Linux and Web development books.
01_575872 ffirs.qxd 5/27/05 6:16 PM Page v
Dedication
This book is dedicated to anyone who finds it useful.
Author’s Acknowledgments
I wish to express my appreciation to the entire Open Source community.
Without those people who give their time and talent, there would be no cool
PHP for me to write about. Furthermore, I never would have learned this soft-
ware without the PHP lists where people generously spend their time answer-
ing foolish questions from beginners. Many ideas have come from reading
questions and answers on the lists.
I want to thank my mother for passing on a writing gene and a good work
ethic. Anything I accomplish has its roots in my beginnings. And, of course,
thank you to my children who manage to remain close, though far away, and
nourish my spirit.
And, of course, I want to thank the professionals who made it all possible.
Without my agent, my editors, and all the other people at Wiley, this book
would not exist. Because they all do their jobs so well, I can contribute my
part to this joint project.
01_575872 ffirs.qxd 5/27/05 6:16 PM Page vii
Publisher’s Acknowledgments
We’re proud of this book; please send us your comments through our online registration form
located at
www.dummies.com/register/.
Some of the people who helped bring this book to market include the following:
Acquisitions, Editorial,
and Media Development
Project Editor: Nicole Sholly
Acquisitions Editor: Terri Varveris
Copy Editor: Virginia Sanders
Technical Editor: Craig Lukasik
Editorial Manager: Kevin Kirschner
Permissions Editor: Laura Moss
Media Development Specialist: Travis Silvers
Media Development Manager:
Laura VanWinkle
Media Development Supervisor:
Richard Graves
Editorial Assistant: Amanda Foxworth
Cartoons: Rich Tennant,
www.the5thwave.com
Composition Services
Project Coordinator: Nancee Reeves
Layout and Graphics: Andrea Dahl,
Joyce Haughey, Clint Lahnen,
Barry Offringa, Lynsey Osborn,
Melanee Prendergast, Heather Ryan
Proofreaders: Leeann Harney, Jessica Kramer,
Carl William Pierce, TECHBOOKS
Production Services
Indexer: TECHBOOKS Production Services
Special Help: Kim Darosett, Andy Hollandbeck
Publishing and Editorial for Technology Dummies
Richard Swadley, Vice President and Executive Group Publisher
Andy Cummings, Vice President and Publisher
Mary Bednarek, Executive Acquisitions Director
Mary C. Corder, Editorial Director
Publishing for Consumer Dummies
Diane Graves Steele, Vice President and Publisher
Joyce Pepple, Acquisitions Director
Composition Services
Gerry Fahey, Vice President of Production Services
Debbie Stailey, Director of Composition Services
01_575872 ffirs.qxd 5/27/05 6:16 PM Page viii
Contents at a Glance
Introduction 1
Part I: Introducing Application Development 7
Chapter 1: Building Your Application 9
Chapter 2: Building in Application Security 23
Part II: Building a User Authentication Application 43
Chapter 3: User Authentication with HTTP 45
Chapter 4: User Login Application 77
Part III: Building Online Sales Applications 129
Chapter 5: Online Catalog Application 131
Chapter 6: Shopping Cart Application 159
Part IV: Building Other Useful Applications 233
Chapter 7: Building a Content Management System 235
Chapter 8: Hosting Discussions with a Web Forum 309
Part V: The Part of Tens 373
Chapter 9: Ten Hints for Application Development 375
Chapter 10: Ten Sources of PHP Code 379
Part VI: Appendixes 383
Appendix A: Introducing Object-Oriented Programming 385
Appendix B: Object-Oriented Programming with PHP 391
Appendix C: The MySQL and MySQL Improved Extensions 407
Appendix D: About the CD 411
Index 417
02_575872 ftoc.qxd 5/27/05 6:35 PM Page ix
Table of Contents
Introduction 1
About This Book 1
Conventions Used in This Book 1
Foolish Assumptions 2
How This Book Is Organized 3
Part I: Introducing Application Development 3
Part II: Building a User Authentication Application 4
Part III: Building Online Sales Applications 4
Part IV: Building Other Useful Applications 4
Part V: The Part of Tens 4
Part VI: Appendixes 4
About the CD 5
Icons Used in This Book 5
Where to Go from Here 5
Part I: Introducing Application Development 7
Chapter 1: Building Your Application . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Understanding PHP and MySQL Versions 10
MySQL 11
PHP 11
PHP and MySQL together 12
Using the Application Source Code 13
Choosing a location 13
Understanding the PHP code 14
Procedural versus object-oriented programs 15
Modifying the Source Code 16
Programming editors 17
Integrated Development Environment (IDE) 18
Planning Your Application 19
Planning the software 20
Additional planning 20
Chapter 2: Building in Application Security . . . . . . . . . . . . . . . . . . . . .23
Understanding Security Risks 24
Building Security into Your PHP Scripts 24
Don’t trust any information from an outside source 25
Storing information 30
02_575872 ftoc.qxd 5/27/05 6:35 PM Page xi
Using system calls 31
Handling errors 32
MySQL Security 33
Setting up accounts and passwords 33
Accessing MySQL from PHP scripts 37
Understanding SQL injection attacks 38
Backing up your databases 40
Using a Secure Web Server 41
Part II: Building a User Authentication Application 43
Chapter 3: User Authentication with HTTP . . . . . . . . . . . . . . . . . . . . . .45
Understanding HTTP Authentication 46
Understanding how the WWW works 46
Requesting a password-protected file 47
Authorizing access 48
Using HTTP Authentication with Apache 49
Configuring Apache 49
Creating the .htaccess file 50
Creating the password file 51
Apache HTTP authentication in action 52
Designing an HTTP Authentication Application in PHP 52
Creating a User Database 54
Designing the user database 54
Creating the user database 55
Accessing the user database 55
Building the Authentication Application in PHP:
The Procedural Approach 56
Building the Authentication Application in PHP:
The Object-Oriented Approach 60
Developing the objects 60
Writing the PasswordPrompter class 61
Writing the Database class 62
Writing the Account class 66
Writing the WebPage class 71
Writing the Auth-OO script 73
Chapter 4: User Login Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Designing the Login Application 78
Creating the User Database 78
Designing the database 79
Building the database 80
Accessing the database 81
Adding data to the database 81
PHP & MySQL Everyday Apps For Dummies
xii
02_575872 ftoc.qxd 5/27/05 6:35 PM Page xii
Building the Login Web Page 82
Designing the login Web page 82
Writing the code for the login page 83
Displaying the login Web page 91
Building the Login Application: The Procedural Approach 91
Writing the application script 92
Protecting your Web pages 100
Building the Login Application: The Object-Oriented Approach 101
Developing the objects 101
Writing the WebForm class 102
Writing the Database class 110
Writing the Account class 111
Writing the Session class 114
Writing the Email class 117
Writing the login application script 119
Protecting your Web pages 126
Adding Features to the Application 126
Part III: Building Online Sales Applications 129
Chapter 5: Online Catalog Application . . . . . . . . . . . . . . . . . . . . . . . . .131
Designing the Online Catalog Application 131
Creating the Catalog Database 132
Designing the Catalog database 132
Building the Catalog database 134
Accessing the food database 134
Adding data to the database 135
Building the Catalog Web Pages 135
Designing the catalog Web pages 136
Writing the code for the index page 138
Writing the code for the products page 140
Displaying the catalog Web pages 145
Building the Online Catalog Application: Procedural Approach 145
Building the Online Catalog Application: The Object-Oriented
Approach 149
Developing the Objects 149
Writing the Catalog class 150
Writing the catalog application script 155
Growing the Catalog class 157
Chapter 6: Shopping Cart Application . . . . . . . . . . . . . . . . . . . . . . . . .159
Designing the Shopping Cart Application 159
Basic application design decisions 159
Application functionality design 161
xiii
Table of Contents
02_575872 ftoc.qxd 5/27/05 6:35 PM Page xiii
Creating the Shopping Cart Database 162
Designing the shopping cart database 162
Building the shopping cart database 164
Accessing the shopping cart database 165
Adding data to the shopping cart database 165
Building the Shopping Cart Web Pages 166
Designing the shopping cart Web pages 166
Writing the code for the product information page 171
Writing the code for the shopping cart Web page 175
Writing the code for the shipping information form 182
Writing the code for the summary page 187
Building the Shopping Cart Application: The Procedural Approach 193
Writing ShopCatalog.php 193
Writing ShoppingCart.php 197
Writing ProcessOrder.php 200
Building the Shopping Cart Application:
The Object-Oriented Approach 207
Developing the objects 207
Writing the Catalog class 208
Writing the Item class 210
Writing the ShoppingCart class 212
Writing the Database class 215
Writing the Order class 216
Writing the WebForm class 221
Writing the WebPage class 222
Writing the Email Class 223
Writing the shopping cart application script 223
Adding Features to the Application 231
Part IV: Building Other Useful Applications 233
Chapter 7: Building a Content Management System . . . . . . . . . . . . .235
Designing the CMS Application 235
Creating the CMS Database 236
Designing the CMS database 237
Building the CMS database 240
Accessing the CMS database 243
Designing the CMS Web Pages 243
Building the CMS Application: Procedural Approach 246
Writing the login code 246
Writing CompanyHome.php, a data retrieval file 253
Writing company.inc, the main HTML display file 262
Writing the content detail code 265
Writing Admin.php, the data manipulation code 269
PHP & MySQL Everyday Apps For Dummies
xiv
02_575872 ftoc.qxd 5/27/05 6:35 PM Page xiv
[...]... Troubleshooting 414 Index 417 xvii xviii PHP & MySQL Everyday Apps For Dummies Introduction B ecause you’re looking at a book called PHP & MySQL Everyday Apps For Dummies, I assume you want to build a Web application with the PHP scripting language and a MySQL backend database If you need to build a dynamic Web application for a specific purpose, you’re in the right place You will... either PHP 4 or PHP 5, with the exception of the MySQL function calls See the following section, PHP and MySQL together,” for further information on the MySQL function calls The object-oriented programs in this book run only with PHP 5 PHP and MySQL together PHP interacts with MySQL by using built-in functions Currently, PHP provides two sets of functions for use when accessing MySQL databases: the MySQL. .. the MySQL Improved extension The MySQL Improved extension was made available with PHP 5 for use with MySQL 4.1 When you install PHP, you activate either the MySQL or the MySQL Improved extension PHP 4 activates MySQL automatically during installation You don’t need to activate it yourself PHP 4 activates the MySQL extension The MySQL Improved extension isn’t available with PHP 4 You can use the MySQL. .. 4.1 However, the functions used in PHP might or might not run correctly See the following section for information on PHP versions PHP Currently, PHP is maintaining two versions: PHP 4 and PHP 5 The current versions are PHP 4.3.11 and PHP 5.0.4 PHP 5 is a major change from PHP 4 Enhancing object-oriented programming features was an important goal in the development of PHP 5 The creation and use of objects... extension with MySQL 4.1; you just can’t use some of the new version 4.1 features PHP 5 doesn’t activate MySQL automatically You need to enable MySQL support yourself either by using the installation option — with -mysql or with-mysqli — on Linux/Mac or by uncommenting one of the following lines in php. ini: ;extension =php_ mysql. dll ;extension =php_ mysqli.dll In general, it’s best to use mysql with MySQL version... available for Windows only It’s an IDE for Apache, PHP, and MySQL on Windows and comes in two versions at different costs: Maguma Studio Desktop and Maguma Studio Enterprise, which offers features for huge sites with multiple servers Maguma Studio for PHP is a free version with support for PHP only www.maguma.com ߜ PHPEdit: This free IDE is available only for Windows www.phpedit.net/products/PHPEdit... possible Consequently, you need to be aware of versions and keep informed about PHP and MySQL versions, changes, and problems Chapter 1: Building Your Application MySQL Currently, MySQL offers three versions: MySQL 4.0, MySQL 4.1, and MySQL 5.0 At this time, MySQL 5.0 is a developmental version, not recommended for production uses It’s fine for testing or experimenting, but if you have a Web site that... features of PHP for people who know PHP, but are unfamiliar with the concepts and terminology of object-oriented programming Appendix B describes the syntax of PHP object-oriented features for those who are familiar with object-oriented Introduction programming in another language Appendix C provides information on PHP functions used to interact with MySQL It provides tables for converting from mysql functions... object-oriented programming 5 6 PHP & MySQL Everyday Apps For Dummies If you modify an application for use on your own Web site or build your own application by using the book applications as a pattern, you need to consider security issues Security is a major issue for Web applications Chapter 2 explains the security issues and describes how to write secure programs in PHP Part I Introducing Application... Post class .355 Writing the Database class .357 Writing the WebForm class 358 Writing the Forum application scripts 359 Writing the supporting functions 368 Possible Enhancements .371 xv xvi PHP & MySQL Everyday Apps For Dummies Part V: The Part of Tens 373 Chapter 9: Ten Hints for Application Development 375 Plan First 375 Be Consistent . by Janet Valade PHP & MySQL ® Everyday Apps FOR DUMmIES ‰ 01_575872 ffirs.qxd 5/27/05 6:16 PM Page iii PHP & MySQL ® Everyday Apps For Dummies ® Published by Wiley Publishing,. useful PHP and MySQL information 413 A bonus chapter 414 Troubleshooting 414 Index 417 xvii Table of Contents 02_575872 ftoc.qxd 5/27/05 6:35 PM Page xvii PHP & MySQL Everyday Apps For Dummies. topics. Janet currently has two published books: PHP & MySQL For Dummies, 2nd Edition, and PHP 5 For Dummies. In addition, she has authored chapters for several Linux and Web development books.
Ngày đăng: 25/03/2014, 16:04
Xem thêm: php & mysql everyday apps for dummies, php & mysql everyday apps for dummies