PHP, MySQL, JavaScript & HTML5 ALL-IN-ONE FOR A Wiley Brand by Steve Suehring and Janet Valade DUMPS' -\j<* * A Wiley Brand
PHP,MySQL,
JavaScript&HTML5
ALL-IN-ONE
FOR
A Wiley Brand
by Steve Suehring and Janet Valade
DUMPS'-\j<* * AWiley Brand
Table of Contents• •••••••••••*«»*<>••»*••«>•••••*•••••••*•**•*•••*'**
Introduction 1
About This Book 1
Foolish Assumptions 1
How This Book Is Organized 2
Book I: Getting Started with PHP and MySQL 2
Book II: HTML and CSS 2
Book III: JavaScript 2
BookIV:PHP 2
BookV: MySQL 2
Book VI: Web Applications 2
Book VII: PHP and Templates 2
Companion Website 3
Icons Used in This Book 3
Where to Go from Here 3
Book h Getting Started With PHP & MySQL 5
Chapter 1: Understanding the Languages of the Web 7
Understanding How the Web Works 7
The web browser 8
The web server 8
Understanding Web Page Languages 10
Marking up with HTML 10
Styling pages with CSS 11
Changing behaviors with JavaScript 11
Understanding the Language of Web Servers 12
Building dynamic web applications with PHP and MySQL 12
Sending the page to the browser with Apache 13
Choosing How You Want to Develop 14
Choosing a host for your website 14
Hosting for a company website 15
Choosing a web-hosting company 16
Using a hosted website 18
Setting Up Your Local Computer for Development 19
Installing the web server 19
Installing PHP 20
Installing MySQL 20
XII PHP, MySQL, JavaScript & HTML5 AtMn-One For dummies
Chapter 2: Installing a Web Server 21
Testing Your Web Server 21
Obtaining Apache 22
Selecting a version of Apache 22
Downloading from the Apache website 23
Obtaining Apache for Windows 23
Obtaining Apache for Linux 23
Obtaining Apache for Mac 24
Obtaining all-in-one installation kits 24
Verifying a downloaded file 24
Installing Apache 25
Installing Apache on Windows 25
Installing Apache on a Mac 27
Installing Apache from source code on Linux and Mac 27
Starting and Stopping Apache 28
Starting and stopping Apache on Windows 28
Starting Apache on Linux, Unix, and Mac 29
Restarting Apache on Linux, Unix, and Mac 30
Stopping Apache on Linux, Unix, and Mac 30
Getting Information from Apache 31
Getting Apache information on Windows 31
Getting Apache information on Linux, Unix, and Mac 31
Configuring Apache 32
Changing settings 32
Changing the location of your Document Root 33
Changing the port number 33
Chapter 3: Installing PHP 35
Checking the PHP Installation 36
Obtaining PHP 36
Downloading from the PHP website 37
Obtaining PHP for Windows 37
Obtaining PHP for Linux 37
Obtaining PHP for the Mac OS 38
Obtaining all-in-one installation kits 38
Verifying a downloaded file 39
Installing PHP 40
Installing on Unix and Linux 40
Installing on Mac OS X 42
Installation options for Unix, Linux, and Mac 44
Installing on Windows 46
Configuring Your Web Server for PHP 47
Configuring your web server on Windows 47
Configuring Apache on Linux and Mac 49
Configuring PHP 50
« « «
7i»6fe of Contents Kill
Testing PHP 51
Troubleshooting 53
Unable to change PHP settings 53
Displays error message: Undefined function 53
Displays a blank page or HTML output only 53
Chapter 4: Setting Up MySQL 55
Checking the MySQL Installation 55
Finding out if MySQL is running or installed 56
Starting MySQL 56
Obtaining MySQL 57
Downloading from the MySQL website 58
Obtaining MySQL for Windows 58
Obtaining MySQL for Linux and Unix 58
Obtaining MySQL for Mac 59
Obtaining all-in-one installation kits 59
Verifying a downloaded file 59
Installing MySQL 59
Running the MySQL Setup Wizard on Windows 60
Installing MySQL on Linux from an RPM file 61
Installing MySQL on Mac from a DMG file 62
Installing MySQL from source files 63
Configuring MySQL 65
Starting and Stopping the MySQL Server 66
Controlling the server on Windows 66
Controlling the MySQL server on Linux and Mac 67
Testing MySQL 68
Troubleshooting MySQL 69
Displays error message: Access denied 69
Displays error message: Client does not supportauthentication protocol 69
Displays error message: Can't connect to 70
MySQL error log 70
The MySQL Administration Program 70
Activating MySQL Support 71
Activating MySQL support on Windows 71
Activating MySQL support on Linux and the Mac OS 71
Checking MySQL support 72
Troubleshooting PHP and MySQL 73
Displays error message: Undefined function 73
MySQL functions not activated (Windows) 74
Chapter 5: Setting Up Your Web Development Environment
with the XAMPP Package 75
Obtaining XAMPP 75
Installing XAMPP 76
jWV PHP, MySQL, JavaScript & HTML5AtNn-One For Dummies
Using the XAMPP Control Panel 78
Testing Your Development Environment 79
Opening the XAMPP web page 80
Testing phpMyAdmin 81
Testing PHP 81
Configuring Your Development Environment 82
Configuring PHP 83
Configuring Apache 83
Configuring MySQL 84
Uninstalling and Reinstalling XAMPP 84
Troubleshooting 85
Book 11: HTML and CSS. 87
Chapter 1: Creating a Basic Page with HTML 89
Understanding the HTML Building Blocks 89
Document types 90
Sections of an HTML Document 91
The root element 92
The head section and title element 92
The body section 94
Creating Good HTML 94
Using the appropriate elements 94
Putting text on a page 95
Creating your first page 97
Choosing block-level or inline elements 98
Inserting line breaks and spaces 99
Making your document easier to maintain 101
Adding lists and tables 102
Practicing Creating a Table 105
Including Links and Images on Your Web Page 108
Adding links 108
Adding images 113
Writing Valid HTML 116
Validating Your HTML 117
Chapter 2: Adding Style with CSS 121
Discovering What CSS Can and Can't Do for Your Web Page 121
What is CSS? 121
Why use CSS? 122
Limitations of CSS 122
Connecting CSS to a Page 123
Adding styling to an HTML element 123
Using an internal style sheet 126Using an external style sheet 128
Table of Contents Kti
Targeting Styles 129
Selecting HTML elements 130
Selecting individual elements 130
Selecting a group of elements 131
Changing Fonts 134
Setting the font family 134
Setting font size 136
Setting the font color 138
Adding Borders 140
Changing List Styles 144
Changing bullet styles 145
Removing bullets 146
Adding a Background 147
Changing the background color 147
Adding a background image 150
Creating Page Layouts 155
Creating a single-column layout 155
Creating a two-column layout 159
Adding Headers and Footers to a Page 163
Creating a header, header menu, and footer 163
Examining the HTML and CSS files 166
Chapter 3: Creating and Styling Web Forms 169
Using Web Forms to Get Information 169
Understanding web forms 170
Looking at form elements 170
Creating a Form 172
All about the form element 172
Adding a text input 173
Adding a drop-down box 174
Creating check boxes 176
Using radio buttons 178
Submitting and clearing the form 179
Using CSS to Align Form Fields 180
Book111: JavaScript 185
Chapter 1: Understanding JavaScript Basics 187
Viewing the World of JavaScript 187
JavaScript isn't Java 187
Knowing what JavaScript can do 188
Examining the Ways to Add JavaScript to a Page 188
Adding the JavaScript tag 189
Adding JavaScript to a page's HTML 189
Using external JavaScript 190
XVi PHP, MySQL, JavaScript & HTML5 AtMn-One For Dummies
Chapter 2: Building a JavaScript Program 191
Getting Started with JavaScript Programming 191
Sending an alert to the screen 191
Adding comments 193
Holding data for later in variables 193
Holding multiple values in an array 195
Creating strings to keep track of words 195
Working with numbers 196
Testing Things with Conditionals 197
Performing Actions Multiple Times with Loops 200
For what it's worth 200
While you're here 203
Using Functions to Avoid Repeating Yourself 203
Creating functions 204
Adding function arguments 204
Calling a function 204
Improving the addNumbers function 205
Returning results from functions 207
Objects in Brief 208
Creating objects 208
Adding properties to objects 209
Working with HTML Documents 210
Accessing HTML with JavaScript 211
Using GetElementByld to access a specific element 211
Working with Web Browsers 214
Detecting the browser 214
Redirecting to another page 216
Chapter 3: Adding jQuery 219
jQuery Introduced 219
Installing jQuery 220
Installing jQuery locally 220
Using CDN-hosted jQuery 221Adding jQuery to a Page 221
Adding local jQuery to a page 221
Adding CDN jQuery to a page 222Incorporating the jQuery readyO Function 223Selecting Elements with jQuery 225
jQuery selectors up close 226Filtering 227
Working with HTML Using jQuery 227
Adding HTML to a page 227Changing elements 230
Changing Attributes and Styles 232
Reading attributes 233Writing attributes 234Changing CSS 237
Table of Contents X^ll
Chapter 4: Reacting to Events with JavaScript and jQuery 241
Understanding Events 241
Working with Forms 242
Adding a Submit Handler 242
Checking for blank fields 246
Monitoring Mouse Events 247
Capturing mouse clicks 247
Watching mouse movements 251
Reacting to Keyboard Events 254
Counting characters 254
Preventing character input 257
Chapter 5: Troubleshooting JavaScript Programs 261
Employing Basic JavaScript Troubleshooting Techniques 261
Adding alerts 262
Using comments in JavaScript 262
Identifying JavaScript Problems with Firebug 264
Installing Firebug 264
Using Firebug 266
Book IV: PHP 269
Chapter 1: Understanding PHP Basics 271
How PHP Works 271
Examining the Structure of a PHP Script 273
Looking at PHP Syntax 275
Using simple statements 276
Using complex statements 276
Writing PHP Code 277
Displaying Content in a Web Page 278
Using PHP Variables 281
Naming a variable 282
Creating and assigning values to variables 282
Using variable variables 283
Displaying variable values 284
Using PHP Constants 287
Understanding Data Types 288
Working with integers and floating-point numbers 289
Working with character strings 292
Working with the Boolean data type 295
Working with the NULL data type 296
Using Arrays 296
Creating arrays 296
Viewing arrays 298
Removing values from arrays 299
XlJiii PHP, MySQL, JavaScript & HTML5 Atl-in-One For dummies
Sorting arrays 299
Getting values from arrays 301
Walking through an array 302
Storing values with multidimensional arrays 305
Using Dates and Times 307
Setting local time 307
Formatting a date 308
Storing a timestamp in a variable 309
Understanding PHP Error Messages 310
Types of PHP error messages 310
Displaying error messages 313
Logging error messages 315
Adding Comments to Your PHP Script 316
Chapter 2: Building PHP Scripts 319
Setting Up Conditions 320
Comparing values 320
Checking variable content 322
Pattern matching with regular expressions 323
Joining multiple comparisons 327
Using Conditional Statements 329
Using if statements 330
Using switch statements 333
Repeating Actions with Loops 335
Using for loops 335
Using while loops 339
Using do..while loops 341
Avoiding infinite loops 343
Breaking out of a loop 344
Using Functions 346
Creating a function 347
Using variables in functions 347
Passing values to a function 349
Returning a value from a function 354
Using built-in functions 356
Organizing Scripts 357
Separating display code from logic code 357
Reusing code 358
Organizing with functions 358
Organizing with include files 359
Chapter 3: PHP and Your Operating System 365
Managing Files 366
Getting information about files 366
Copying, renaming, and deleting files 368
Organizing files 369
«
Table of Contents XtX
Using Operating System Commands 372
Using backticks 373
Using the system function 374
Using the exec function 375
Using the passthru function 376
Accessing error messages from system commands 376
Understanding security issues 377
Using FTP 378
Logging in to the FTP server 379
Getting a directory listing 380
Downloading and uploading files with FTP 380
Looking at other FTP functions 382
Reading and Writing Files 383
Accessing files 384
Writing to a file 386
Reading from a file 387
Exchanging Data with Other Programs 390
Exchanging data in flat files 390
Exchanging data in comma-delimited format 390
Using other delimiters 391
Using SQLite 394
Chapter 4: Object-Oriented Programming 397
Introducing Object-Oriented Programming 397
Objects and classes 398
Properties 399
Methods 399
Inheritance 400
Developing an Object-Oriented Script 400
Choosing objects 401
Selecting properties and methods for each object 401
Creating and using an object 402
Defining a Class 402
Writing a class statement 403
Setting properties 403
Accessing properties using $this 404
Adding methods 405
Understanding public and private properties and methods 407
Writing the constructor 409
Putting it all together 410
Using a Class in a Script 413
Using Abstract Methods in Abstract Classes and Interfaces 415
Using an abstract class 415
Using interfaces 417
Preventing Changes to a Class or Method 418
Handling Errors with Exceptions 419
Copying Objects 420
KK PHP, MySQL, JavaScript & HTML5AtNn-One For Dummies
Comparing Objects 421
Getting Information about Objects and Classes 422
Destroying Objects 423
Chapter 5: Considering PHP Security 425
Securing the Server 425
Hardening the server 425
Using a firewall 426
Securing Apache 426
Securing PHP applications with SuExec 426
mod_security 427
Setting Security Options in php.ini 428
Handling Errors Safely 429
Understanding the dangers 429
Testing for unexpected input 430
Handling the unexpected 431
Checking all form data 431
Sanitizing Variables 432
Converting HTML special characters 432
Uploading Files without Compromising the Filesystem 433
Avoiding DoS attacks on the filesystem 433
Validating files 433
Using FTP functions to ensure safe file uploads 434
Chapter 6: Tracking Visitors with Sessions 437
Understanding Sessions and Cookies 437
Looking at sessions 437
Working with cookies 438
Checking if cookies are enabled 438
Using Sessions to Pass Data 440
Starting a session 440
Closing a session 445
Using session_write_closeO 445
Understanding Other Session Options 446
Book V: MySQL 447
Chapter 1: introducing MySQL 449
Examining How MySQL Works 449
Understanding Database Structure 450
Communicating with MySQL 450
Building SQL queries 451
Sending SQL queries 452
Using the mysql client 453
Protecting Your MySQL Databases 454
«
Table of Contents KKI
Chapter 2: Administering MySQL 457
Understanding the Administrator Responsibilities 457
Default Access to Your Data 458
Controlling Access to Your Data 459
Account names and hostnames 460Passwords 461Account privileges 461
Setting Up MySQL Accounts 462
Identifying what accounts currently exist 464
Adding accounts 465
Adding and changing passwords 465
Changing privileges 466
Removing accounts 467
Backing Up Your Database 468
Backing up on Windows 469
Backing up on Linux, Unix, and Mac 469
Restoring Your Data 471
Upgrading MySQL 473
Chapter 3: Designing and Building a Database 475
Designing a Database 475
Choosing the data 475
Organizing the data 477
Creating relationships between tables 480
Storing different types of data 481
Designing a Sample Database 484
Writing Down Your Design 487
Building a Database 489
Creating a new database 489
Creating and deleting a database 490
Adding tables and specifying a primary key 491
Removing a table 493
Changing the Database Structure 494
Chapter 4: Using the Database 497
Adding Information to a Database 498
Adding one row at a time 498
Adding a bunch of data 500
Looking at the Data in a Database 502
Retrieving Information from a Database 502
Retrieving specific information 503
Retrieving data in a specific order 505
Retrieving data from specific rows 505
Combining information from more than one table 508
Updating Information in a Database 513
Removing Information from a Database 513
JCXil PHP, MySQL, JavaScript & HTML5 Alt-in-One for dummies
Chapter 5: Communicating with the Database from PHP Scripts ....515
Knowing How MySQL and PHP Work Together 515
PHP Functions That Communicate with MySQL 516
Communicating with MySQL 516
Connecting to the MySQL server 517
Sending an SQL statement 519
Sending multiple queries 520
Selecting a Database 521
Handling MySQL Errors 522
Using Other Helpful mysqli Functions 523
Counting the number of rows returned by a query 523
Determining the last auto entry 524
Counting affected rows 525
Escaping characters 525
Converting mysqli Functions to mysql Functions 526
Book VI: CVeb Applications 529
Chapter 1: Improving Your PHP Programs 531
Automatically Including Helper Functions 531
Using auto_prepend_file 531
Starting sessions with a prepended file 532
Using classes for efficiency 534
Reusing Code 535
Using functions 536
Using object-oriented programming 539
Chapter 2: Creating and Using a Web Service 541
Understanding Web Services 541
Returning Data from a Web Service 542
Returning the date 542
Returning web service data from a database 545
Accepting Input to a Web Service 548
Querying with input data 548
Returning XML results 550
Returning JSON and XML 551
Chapter 3: Validating Web Forms with JavaScript and PHP 555
Understanding How to Validate Web Forms 555
Always assume bad data 556
Never assume JavaScript 556Sometimes mirror client- and server-side validation 556
Performing Basic JavaScript Validation 557
Looking at the form HTML and CSS 561
Adding JavaScript validation 563
« « *
Table of Contents XXI1I
Performing PHP Validation 574
Validating required fields 576
Validating text 579
Validating drop-downs, radio buttons, and check boxes 579
Validating numbers 580
Validating URLs and e-mail addresses 581
Making sure the passwords match 582
Creating a validation function 585
Chapter 4: Building a Members-Only Website 587
Understanding a Members-Only Site 588
Creating the User Database 589
Designing the Customer database 589
Building the Customer database 590
Accessing the Customer database 591
Creating Base Functions 591
Creating Web Forms 593
Creating the registration pages 593
Building a success page 603
Creating the login page 604
Creating a User Object 607
Building the User class 607
Building the login-process PHP file 610
Adding Authenticated Pages 612
Building a protected page 612
Building a log out page 614
Adding E-mail Functionality 618
Building the password reset database 619
Building the password recovery page 619
Building the process files 625
Building the class methods 628
Book V\h PHP and templates 633
Chapter 1: Configuring PHP 635
Understanding the php.ini 635
Working with the php.ini 635
Making changes outside of the php.ini 636
Understanding Common Configuration Changes 636
Changing session timeout 636
Changing other session parameters 637
Disabling functions and classes 637
Changing error display 639
Changing resource limits 639
JflP/V PHP, MySQL, JavaScript & HTML5 M-in-One For Dummies
Chapter 2: Building a Templating System 641
Understanding Template Systems 641
Building a PHP Template 642
Creating a template class 642
Creating the top of the page 643
Creating the bottom of the page 646
Connecting the top, bottom, and middle 646
Extending the Template 650
Building an About page 650
Building a Contact page 651
Index 055