PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

15
PHP, MySQL, JavaScript & HTML5 ALL-IN-ONE FOR A Wiley Brand by Steve Suehring and Janet Valade DUMPS' -\j<* * A Wiley Brand

Transcript of PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

Page 1: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

PHP,MySQL,

JavaScript&HTML5

ALL-IN-ONE

FOR

A Wiley Brand

by Steve Suehring and Janet Valade

DUMPS'-\j<* * AWiley Brand

Page 2: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 3: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 4: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

« « «

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

Page 5: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 6: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 7: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 8: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 9: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 10: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

«

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

Page 11: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 12: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

«

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

Page 13: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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

Page 14: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

« « *

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

Page 15: PHP, MySQL, JavaScript & HTML5 all-in-one for Dummies ; [7 ...

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