
At a Glance
530 Pages
21.59 x 17.78 x 2.54
Paperback
$54.99
or 4 interest-free payments of $13.75 with
 orÂShips in 5 to 7 business days
| About the Author | p. x |
| About the Technical Reviewer | p. xi |
| About the Cover Image | p. xii |
| Acknowledgments | p. xiii |
| Introduction | p. xiv |
| Who this book is for | p. xiv |
| Do I need to have Dreamweaver 8? | p. xv |
| Windows- and Mac-friendly | p. xv |
| What if I'm new to Dreamweaver? | p. xvi |
| What this book covers | p. xvi |
| Support for this book | p. xvii |
| Layout conventions | p. xvii |
| So, You Want to Build Dynamic Sites? | p. 1 |
| What makes a site dynamic? | p. 2 |
| Increasing response to the user with server-side technology | p. 3 |
| Why choose PHP/MySQL? | p. 4 |
| How dynamic sites work | p. 5 |
| Using code that acts as a template | p. 5 |
| Taking a peek behind the scenes | p. 7 |
| Building dynamic sites with Dreamweaver | p. 8 |
| An overview of Dreamweaver server behaviors | p. 9 |
| Looking ahead | p. 11 |
| Dreamweaver and PHP-A Productive Partnership | p. 13 |
| Taking a quick first look at Dreamweaver 8's new features | p. 14 |
| Improved CSS support | p. 14 |
| A more productive coding environment | p. 15 |
| Support for PHP 5 | p. 16 |
| Organizing your workspace | p. 17 |
| Preset workspace layouts in Windows | p. 17 |
| Tabbed documents in Mac OS X | p. 18 |
| Saving and sharing customized workspace layouts | p. 20 |
| Getting the best out of Code view | p. 21 |
| Using the Coding toolbar | p. 21 |
| Collapsing code sections | p. 22 |
| Formatting code with context menus | p. 24 |
| Using PHP code hints and auto completion | p. 25 |
| Comparing different versions of files | p. 26 |
| Setting up the File Compare feature | p. 27 |
| Using File Compare | p. 27 |
| Comparing two local files in the same site | p. 30 |
| Comparing two local files in different sites | p. 30 |
| Comparing local and remote files | p. 30 |
| Problems with File Compare | p. 31 |
| Creating standards-compliant code | p. 32 |
| Choosing the right DTD | p. 32 |
| Be aware of potential pitfalls in XHTML | p. 33 |
| Changing the DTD in Dreamweaver 8 | p. 35 |
| Treat the DOCTYPE declaration with respect | p. 38 |
| Meet Mark of the Web | p. 40 |
| Removing unwanted code cleanly | p. 40 |
| Watch that cursor! | p. 41 |
| The next step | p. 41 |
| Getting the Work Environment Ready | p. 43 |
| Deciding where to test your pages | p. 44 |
| Checking the suitability of your remote server for testing | p. 45 |
| Creating a local testing server | p. 45 |
| Why not use an all-in-one package? | p. 46 |
| Deciding where to locate your sites | p. 47 |
| Two strategies: centralized or distributed | p. 47 |
| Setting up on Windows | p. 51 |
| Getting Windows to display filename extensions | p. 51 |
| Choosing the right web server | p. 52 |
| Installing Apache on Windows | p. 52 |
| Starting and stopping Apache on Windows | p. 56 |
| Changing startup preferences or disabling Apache | p. 58 |
| Downloading and installing PHP on Windows | p. 58 |
| Adding PHP to your Windows startup procedure | p. 65 |
| Configuring Apache to work with PHP | p. 66 |
| Avoiding the "Cannot load mysqli extension" error | p. 72 |
| Configuring IIS to work with PHP | p. 73 |
| Upgrading and uninstalling Apache and PHP on Windows | p. 77 |
| Setting up on Mac OS X | p. 78 |
| Starting Apache and testing PHP | p. 78 |
| Upgrading PHP on Mac OS X | p. 80 |
| Configuring PHP to display errors on Mac OS X | p. 82 |
| Checking your PHP configuration (Windows and Mac) | p. 84 |
| Setting up virtual hosts | p. 85 |
| Registering virtual hosts on Windows | p. 86 |
| Registering virtual hosts on Mac OS X | p. 87 |
| Registering virtual directories on IIS | p. 89 |
| Defining a PHP site in Dreamweaver | p. 89 |
| Points to watch when using a remote server for testing | p. 95 |
| Now you're set to go | p. 96 |
| Getting Ready for the Case Study | p. 99 |
| Creating the basic structure of East-West Seasons | p. 101 |
| Organizing the download files for the case study | p. 101 |
| Installing Lorem and More | p. 103 |
| Analyzing the main page layout | p. 103 |
| Styling the page with CSS | p. 111 |
| Deciding whether to support legacy browsers | p. 111 |
| Attaching the basic styles with [left angle bracket]link[right angle bracket] | p. 112 |
| Attaching the remaining styles with @import | p. 114 |
| PHP, here we come | p. 119 |
| Integrating PHP into Your Site | p. 121 |
| Including text and code from other files | p. 122 |
| Using require() instead of include() | p. 127 |
| Points to remember when using includes | p. 129 |
| "Failed to open stream" and other error messages | p. 130 |
| Displaying PHP output with Live Data view | p. 131 |
| Introducing the basics of PHP | p. 133 |
| Using the correct filename extension | p. 134 |
| The core components of PHP syntax | p. 134 |
| Handling unknown values with variables | p. 135 |
| Assigning values to a variable | p. 136 |
| Getting to know the various datatypes | p. 137 |
| Indenting code and use of white space | p. 138 |
| Separating commands with the semicolon | p. 138 |
| Commenting scripts for clarity and debugging | p. 139 |
| Handling text and other output in PHP | p. 142 |
| Choosing single or double quotation marks | p. 143 |
| Using escape sequences in strings | p. 145 |
| Joining strings | p. 146 |
| Adding to an existing string | p. 147 |
| Doing calculations with PHP | p. 148 |
| Arithmetic operators | p. 148 |
| Making decisions with PHP | p. 151 |
| Using if...else conditional statements | p. 153 |
| Using comparison operators | p. 154 |
| Testing more than one condition | p. 156 |
| Solid foundations | p. 158 |
| Getting Feedback from an Online Form | p. 161 |
| Designing the feedback form | p. 162 |
| Activating the feedback form | p. 167 |
| Understanding how the contact form works | p. 167 |
| Organizing related values in arrays | p. 168 |
| Identifying elements in the POST array | p. 170 |
| Keeping secure with the superglobal arrays | p. 170 |
| Improving the feedback form | p. 176 |
| Getting rid of unwanted backslashes | p. 176 |
| Checking required fields for valid input | p. 178 |
| Avoiding email injection attacks | p. 178 |
| Improving the look of the email | p. 184 |
| How long does a variable last? | p. 185 |
| Acknowledging the feedback | p. 186 |
| Using Balance Braces | p. 191 |
| Turning the email regular expression into a snippet | p. 192 |
| Changing the site's styles automatically | p. 193 |
| Using the switch statement for decision chains | p. 193 |
| Building an automatic style changer | p. 194 |
| Extracting date parts with date() | p. 194 |
| Automating the navigation menu | p. 198 |
| Using loops to handle repetitive tasks | p. 199 |
| Loops using while and do ... while | p. 199 |
| The versatile for loop | p. 200 |
| Looping through arrays with foreach | p. 200 |
| Creating arrays | p. 201 |
| Modularizing code with functions | p. 205 |
| Naming functions | p. 206 |
| Passing values to functions | p. 206 |
| Returning values from functions | p. 208 |
| Halfway review | p. 208 |
| Putting the Power of a Database Behind Your Pages | p. 211 |
| Choosing the right version | p. 213 |
| Explaining the terminology | p. 213 |
| Installing MySQL on Windows | p. 214 |
| Removing an older version of MySQL | p. 215 |
| Installing the Windows Essentials version of MySQL | p. 215 |
| Configuring MySQL Windows Essentials | p. 218 |
| Upgrading to a later series of Windows Essentials | p. 224 |
| Performing a straight upgrade from one series to another | p. 224 |
| Running two series in parallel | p. 225 |
| Changing the default table type on Windows Essentials | p. 226 |
| Starting and stopping MySQL manually on Windows | p. 227 |
| Introducing the MySQL monitor on Windows | p. 229 |
| Starting a session | p. 229 |
| Ending your session | p. 229 |
| Setting up MySQL on Mac OS X | p. 230 |
| Downloading and installing the software | p. 230 |
| Adding MySQL to your PATH | p. 232 |
| Amending PATH in the bash shell | p. 232 |
| Amending PATH in the tcsh shell | p. 233 |
| Securing MySQL on Mac OS X | p. 233 |
| Setting the MySQL root password | p. 234 |
| Working with the MySQL monitor on Windows and Mac | p. 236 |
| Using MySQL with a graphical interface | p. 237 |
| phpMyAdmin: A golden oldie | p. 237 |
| Obtaining and installing phpMyAdmin | p. 237 |
| MySQL Administrator and MySQL Query Browser: Snapping at the heels of phpMyAdmin | p. 240 |
| Now to business | p. 241 |
| Building a Random Quotation Generator | p. 243 |
| Finding your way around phpMyAdmin | p. 244 |
| Creating user accounts for MySQL | p. 245 |
| Granting the necessary user privileges | p. 246 |
| Building the first database table | p. 250 |
| Choosing the right column type | p. 254 |
| Storing text | p. 255 |
| Storing numbers | p. 256 |
| Storing dates and times | p. 256 |
| Storing predefined lists | p. 257 |
| Storing binary data | p. 257 |
| Populating the database table | p. 257 |
| Displaying database content | p. 259 |
| Creating and updating database records | p. 270 |
| A great deal achieved | p. 282 |
| Working with Multiple Tables | p. 285 |
| Storing related information in separate tables | p. 286 |
| Using foreign keys to link records | p. 286 |
| What foreign key constraints do | p. 288 |
| Splitting the quotations table | p. 289 |
| Deciding on the best structure | p. 296 |
| Selecting records from more than one table | p. 296 |
| The four essential SQL commands | p. 298 |
| SELECT | p. 299 |
| INSERT | p. 301 |
| UPDATE | p. 302 |
| DELETE | p. 302 |
| Managing content with multiple tables | p. 303 |
| Inserting new quotations | p. 304 |
| Inserting new authors | p. 311 |
| Updating authors | p. 315 |
| Deleting authors | p. 320 |
| Updating quotations | p. 324 |
| The mystery of missing records | p. 325 |
| Deleting quotations | p. 328 |
| Chapter review | p. 329 |
| Using Sessions to Track Visitors and Restrict Access | p. 331 |
| What sessions are and how they work | p. 332 |
| Creating PHP sessions | p. 333 |
| Creating and destroying session variables | p. 333 |
| Destroying a session | p. 334 |
| The "Headers already sent" error | p. 334 |
| Registering and authenticating users | p. 337 |
| Creating a user registration system | p. 337 |
| Building custom server behaviors | p. 346 |
| Completing the user registration form | p. 349 |
| Updating and deleting user records | p. 353 |
| Adapting the Sticky Text Field server behavior | p. 354 |
| Building the update and delete pages | p. 356 |
| Creating a login system | p. 362 |
| Restricting access to individual pages | p. 364 |
| Logging out users | p. 365 |
| Automating the validation process with MX Kollection 3 | p. 365 |
| Installing MX Kollection 3 | p. 366 |
| Defining your MX Kollection site preferences | p. 367 |
| Building the user registration and login system | p. 370 |
| Assessing the pros and cons of MX Kollection | p. 374 |
| Two approaches to PHP | p. 375 |
| Displaying a Blog and Photo Gallery | p. 377 |
| Creating the blog back-end | p. 378 |
| Planning and building the required components | p. 378 |
| Building a list of images in a folder | p. 381 |
| Displaying a message when no records are found | p. 384 |
| Formatting dates and time in MySQL | p. 388 |
| Creating striped table rows | p. 391 |
| Finishing the back-end | p. 392 |
| Displaying the blog | p. 396 |
| Extracting the first section of a long item | p. 396 |
| Using Live Data view with a URL parameter | p. 401 |
| Creating an intelligent link | p. 403 |
| Displaying images in a dynamic site | p. 405 |
| Weighing the pros and cons of storing images in a database | p. 405 |
| Positioning dynamically inserted images | p. 406 |
| Getting an image's dimensions dynamically | p. 411 |
| Displaying a photo gallery | p. 413 |
| How the photo gallery is structured | p. 415 |
| Putting the photo gallery together | p. 417 |
| Improving the blog and photo gallery | p. 424 |
| Storing dates in MySQL | p. 425 |
| Validating and formatting dates for database input | p. 425 |
| Mission almost accomplished | p. 429 |
| Using XSLT to Display Live News Feeds and XML | p. 431 |
| A quick guide to XML and XSLT | p. 432 |
| What an XML document looks like | p. 432 |
| Using client-side and server-side transformations | p. 434 |
| Checking your server's capability | p. 436 |
| Pulling in an RSS news feed | p. 437 |
| How Dreamweaver handles server-side XSLT | p. 438 |
| Choosing a suitable news feed | p. 439 |
| Being a bit more adventurous with XSLT | p. 446 |
| Setting up a local XML source | p. 446 |
| Understanding how XSLT is structured | p. 448 |
| Accessing nested repeating elements | p. 450 |
| Creating conditional regions | p. 451 |
| Sorting elements | p. 454 |
| Formatting elements | p. 454 |
| Displaying output selectively | p. 455 |
| Going further | p. 461 |
| Using Languages Other Than English in MySQL | p. 463 |
| How MySQL uses character sets and collation | p. 463 |
| Setting the right sort order | p. 465 |
| Essential MySQL Maintenance | p. 469 |
| Backing up and transferring a database | p. 469 |
| Updating the privilege tables after an upgrade | p. 474 |
| What to do if you forget your root password | p. 475 |
| Upgrading and uninstalling MySQL on Mac OS X | p. 475 |
| Index | p. 481 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9781590595695
ISBN-10: 1590595696
Series: Foundation
Published: 28th June 2010
Format: Paperback
Language: English
Number of Pages: 530
Audience: General Adult
Publisher: Springer Nature B.V.
Country of Publication: US
Dimensions (cm): 21.59 x 17.78 x 2.54
Weight (kg): 0.85
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Apache Iceberg: The Definitive Guide
Data Lakehouse Functionality, Performance, and Scalability on the Data Lake
Paperback
RRP $133.00
$64.75
OFF

Architecture Patterns with Python
Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Paperback
RRP $125.75
$60.99
OFF

Python Polars: The Definitive Guide
Transforming, Analyzing, and Visualizing Data with a Fast and Expressive Dataframe API
Paperback
RRP $152.00
$73.75
OFF
This product is categorised by
- Non-FictionComputing & I.T.Graphical & Digital Media ApplicationsWeb Graphics & Design
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages
- Non-FictionComputing & I.T.DatabasesDatabase Software
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentGraphics Programming
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentWeb Programming
- Non-FictionComputing & I.T.Digital Lifestyle & Online World: Consumer & User GuidesInternet Guides & Online Services





















