Purchased the book on Amazon.com or received a free copy at a user group or conference? Click here to create your account!

Home » Books » Easy PHP Websites with the Zend Framework

Easy PHP Websites with the Zend Framework

By: W. Jason Gilmore
Publication Date: August 3, 2009
ISBN: 06153033889
Price: $32.00
Pages: 330
Category: PHP
Other Formats: E-Book Only ($22.00)

Easy PHP Websites with the Zend Framework shows you how to build websites fast using PHP and MySQL, two of the world's most popular Web development technologies. What's more, you'll learn how to supercharge these technologies by taking advantage of a powerful, free web development solution known as the Zend Framework, which helps developers build websites with amazing speed and efficiency.

Description

Easy PHP Websites with the Zend Framework shows you how to build websites fast using PHP and MySQL, two of the world's most popular Web development technologies. What's more, you'll learn how to supercharge these technologies by taking advantage of a powerful, free web development solution known as the Zend Framework, which helps developers build websites with amazing speed and efficiency.

This book embraces a teaching strategy of learning by doing, showing you how to build website features you'll actually want to use within your own websites. Among other things you'll learn how to manage data submitted through web forms, send unformatted and HTML e-mails through your website, manage user registrations, logins, and recover forgotten passwords, and even create the structure for a simple social network.

Along the way, you'll learn how to take advantage of popular online services such as Google Maps, Amazon Web Services, the Facebook Platform, and PayPal to create even more compelling websites. Master the Zend Framework and have fun doing it!

Table of Contents

Chapter 1. Configuring Your Development Environment

In this introductory chapter you'll learn how to create the ultimate development environment. In addition to showing you how to install Apache, PHP and MySQL on Windows XP and Vista, you'll learn about useful development tools such as Eclipse PDT, Freemind, and the Firefox Developer Add-on. We'll also discuss the different types of hosting providers, and their various pros and cons.

  • Installing Apache, PHP and MySQL on Windows. In this step you'll learn how to install Apache, PHP and MySQL both the easy way (using an automated installer called XAMPP) and the hard way (manually) on the Windows XP or Vista operating systems. Special attention is paid to troubleshooting confusing installation and configuration issues on the Windows platform. Don't worry if your laptop or computer is a few years old, because the software can run quite ably with minimal resources.
  • Testing Your Installation. In this step you'll test your installation by creating and executing a simple PHP script. Although the next chapter is devoted to acquainting you with PHP syntax, in this scenario you'll learn how to embed PHP into a web page and make it available for request via the web server.
  • Choosing a Code Editor. Creating PHP programs doesn't require special development tools; in fact you could write working PHP code with a text editor as simple as Notepad if you'd like. However, there are numerous code editors suited specifically for PHP development which will help you to create web applications much more quickly and efficiently.
  • Useful Development Tools. A great code editor is only one of several tools you'll want on hand. In this section you'll learn about several great open source utilities, including FileZilla, Freemind, and the Firefox Web Developer Add-on
  • Choosing a Hosting Provider. Eventually you'll want to make your website available to others. Most individuals and organizations rely on a web services provider to host their website. In this final step you'll learn about what factors you should keep in mind when choosing an appropriate provider.

Chapter 2. Introducing PHP

With the development environment in place, it's time to start coding! In this chapter you'll be introduced to PHP's fundamental syntax, setting the stage for publishing your first dynamic web page. Rather than guide you through a bunch of contrived examples, you'll instead learn how to do something useful: migrating an Excel spreadsheet to the Web! You'll also learn how to effectively manage your website design by using a simple but effective approach.

  • Create Your First PHP-enabled Web page. In your first step you'll learn how to integrate PHP code into your web pages. This step is particularly crucial as in it you'll be provided with a short tutorial on PHP's fundamental syntax and features which we'll use repeatedly in subsequent steps and in other scenarios found throughout this book.
  • Read and Format Data from an Excel spreadsheet. In this step you'll learn how to easily convert an Excel spreadsheet containing your video game collection into a format capable of being read by a PHP script. This script, which we'll also create in this step, will parse the spreadsheet data and display it to the browser in a user-friendly format.
  • Eliminate Redundancy Using Templates. While simply displaying a directory serves a practical purpose, chances are you're going to want to spruce up the page a bit by incorporating a few design elements. In order to maintain design consistency and enforce maintainability as the website grows you'll likely want to convert these design elements into templates and then dynamically integrate them into your website.

Chapter 3. Interacting With Your Users

The beauty of the web is that it's a two-way street; not only can you disseminate information to interested visitors, but so can your visitors provide feedback and interact in a variety of ways. The most commonplace way to do so is via a web form. In this chapter we'll cover form fundamentals, teaching you not only how to retrieve data submitted through a form, but also validate the data to ensure it meets your expectations. You'll also learn how to send this form data directly to your inbox by sending an e-mail directly from a PHP script.

  • Creating a Contact Form. Creating an HTML form is easy enough, but what happens to the data once it's submitted? In the first step of this scenario I'll show you how to pass form information to a PHP script for further processing by creating a contact form which visitors can use to get in touch with you.
  • Validating User Input. Because most web sites are open to visitors from around the world, malicious individuals included, it is crucial to thoroughly examine and validate all user input. In this step I'll show you how to validate input by creating your own data validation class.
  • Repopulating Form Data. In cases when users have been informed of submission errors (such as an invalid e-mail address), you want to let them know about the error while not inconveniencing them by forcing them to complete the form anew. In this Step I'll show you how to repopulate forms with user data to save them the hassle.
  • Sending Form Data via E-mail. By now you know how to efficiently capture and process form data, but what's next? For relatively low traffic contact forms, the easiest way to view the data is by sending it via e-mail to some predesignated address. In this step I'll show you how to transmit forms data to your inbox using PHP's mail() function, as well as through the more effective Mail PEAR package.
  • More on Securing User Input.While Step #2 showed you how to validate form data to ensure it conforms to certain constraints, validation is really only part of the bigger picture when it comes to securing data arriving from an untrusted source (in the case of validation, the user). In this concluding step I'll discuss some crucial steps you should, no must, take when processing data arriving from untrusted sources.

Chapter 4. Introducing MySQL

As your website ambitions grow, so will your need to devise a way to effectively manage data. The most commonplace way for doing so is using a relational database. In this chapter I'll introduce you to MySQL, one of the most popular such databases in the world.

  • What Is a Relational Database?. In this opening step you'll be introduced to the concept of a relational database, and learn why its such a useful tool for efficiently managing data.
  • Introducing MySQL In this step you'll become acquainted with the MySQL database and learn how MySQL interprets the data stored within it.
  • Introducing phpMyAdmin In this step you'll learn how to use phpMyAdmin to create the website database and the tables which will host the game collection, along with a user granted sufficient privileges to manage the database.
  • Moving Your Game Collection to MySQL You've successfully configured MySQL and created the data structures necessary to manage your application's data, but how do you go about actually importing the existing data into MySQL? It's easier than you think, and in this step you'll learn how.
  • Connecting Your Website to MySQL In this step you'll learn how to connect to the MySQL database from a PHP script, and build the pages which will make it possible to add new games, modify existing game information, and even delete games from your collection directory, all through the web!
  • Restricting Access Clearly you'll want to restrict access to the game management interfaces, otherwise malicious users might take the opportunity to modify or delete your data. In this final step I'll show you an easy way to password-protect any script.

Chapter 5. Introducing the Zend Framework

Building a successful website is a product of much more than mere programming. You need to deal with an enormous number of factors, including configuration issues such as creating user-friendly URLs and managing site configuration data, security issues such as validating user input and preventing other commonplace attacks, user interface issues such as managing design templates and adding Ajax features, and integrating third-party services. Because all web developers face similar issues, web frameworks have been created which handle many of this gory details for you. Once such framework is the popular PHP-driven Zend Framework, and this chapter introduces this impressive solution.

  • What is a Web Framework? The first four chapters have gone so well that you might wonder why we're switching strategies at this point in the book. This step explains how a framework can greatly reduce the time and effort you'd otherwise spend dealing with these issues when building a website from scratch.
  • Introducing the Zend Framework. With so many Web frameworks available, why should you choose the Zend Framework? In this step I'll highlight some of the features that make the Zend Framework such an attractive solution.
  • Installing the Zend Framework. Installing the Zend Framework is actually quite simple, however configuration can be a bit of a chore if you're not familiar with the process. In this step I'll show you how to use the Zend_Tool utility to create your first Zend Framework-powered project. We'll also go over several fundamental configuration-related matters.
  • Testing Your Installation. The easiest way to test a new Zend Framework installation is to start building your application! In this step we'll create a few starter scripts to ensure everything is functioning as expected, in the process laying the groundwork for the GameNomad application.
  • Creating the Error Controller. Being able to properly address errors such as nonexistent URLs is a crucial part of sound website design. In this step you'll learn how to create an error controller, which can not only provide users with a friendly error message, but also e-mail you or perform other diagnostics should an error occur.
  • Creating the Website Layout. Web Frameworks like Zend's greatly reduce and even eliminate any design redundancy by breaking the website into reusable parts. Of these parts, the largest is the layout, and in this step I'll show you how to create it. You'll also learn how to take advantage of other Zend Framework features such as the view helper and partial to more effectively manage your site.
  • Creating a Configuration File. Maintaining a site's configuration data in a single location makes it trivial for you to update a MySQL password or mail server address, not to mention gives you peace of mind knowing that the entire site's behavior will reflect a single configuration change. Furthermore, a centralized solution can greatly reduce the time involved to update configuration settings when migrating your site from development to live stage. The Zend Framework was built with a feature which fulfills all of these conveniences, and by the end of this step you'll wonder how you ever lived without it.
  • The init() Method. You'll often want to carry out a few tasks before any method in a particular controller is executed. Rather than repetitively include this code at the top of each method, you can include it within the controller's init() method, which will execute prior to any method found in the controller. In this step I'll show you how this is done.
  • Creating Action Helpers. In the final step of this action-packed chapter, it seems fitting to conclude with the creation of an action helper, which can be used to share initialization variables and other tasks across controllers.

Chapter 6. Talking to the Database with Zend_Db

Chapter 4 showed you how to write queries which PHP which made it possible to interact with a MySQL database. Although unquestionably useful, if you're like me there was something oddly unnatural about mixing PHP and SQL code together within a single script. In this chapter I'll show you how to have your cake and eat it too by using the Zend_Db component to interact with MySQL using purely PHP code.

  • Introducing Object-relational Mapping. In this opening step I'll introduce you to a concept known as object-relational mapping, which is the fundamental premise behind the Zend_Db component which makes database access so easy using the Zend Framework.
  • Introducing Zend_Db. The Zend_Db component is the conduit for talking to a database using the Zend Framework. In this step I'll introduce you to this component, which is so powerful that it almost manages to make database access fun.
  • Creating Your First Model. When using Zend_Db, you'll rely upon a series of classes (known as models) as the conduits for talking to your database, meaning you'll be able to query and manage data without having to write SQL queries! In this step I'll show you how to create a model for managing video game data which we'll subsequently use throughout the remainder of this chapter.
  • Querying Your Models. With the Game model created, we can set about pulling data from the games table using the query syntax exposed through the Zend_Db component. In this step I'll introduce you to this syntax, showing you how to retrieve data from the games table in a variety of useful ways.
  • Inserting, Updating, and Deleting Data. Just as you can retrieve data through the Zend_Db component, so can you use the component to insert, update, and delete data. In this step I'll show you how.
  • Creating Model Relationships. Zend_Db can account for table relationships, allowing you to deftly interact with the database in amazingly convenient ways. In my experience this is one of the component's most compelling features, and in this step I'll show you how to take advantage of it by defining a second model named Platform (for managing gaming platforms, such as Xbox 360 and Nintendo Wii), and tying it to the Game model so we can associate each game with it's platform.
  • JOINing Your Data. Most of your time will be spent dealing with simple queries such as those introduced so far in this chapter, however you'll occasionally be wanting for a more powerful way to assemble your data. In this step I'll introduce you to the powerful SQL statement known as the join, which will open up a myriad of new possibilities to consider when querying the database.
  • Paginating Results with Zend_Paginator. When dealing with large amounts of data, for useability reasons you'll probably want to spread the data across several pages, or paginate it, so the user can easily peruse it without having to endure long page loading times. But manually splitting retrieved data into multiple pages is a more difficult task than you might think; thankfully the Zend_Paginator component can do the dirty work for you, and in this step I'll show you how to use it.
  • Creating and Managing Views. As the complexity of your data grows, so will the SQL queries used to mine it. Rather than repeatedly refer to these complex queries within your code, you can bundle them into what's known as a view, which stores the query within the database. Using an alias assigned to that view, you can now query the data using a far simpler syntax.

Chapter 7. Processing Forms and Sending E-mail

This chapter extends what was learned in Chapter 3, using the Zend Framework to process user-submitted data. You'll also learn about the Zend Framework's powerful built-in data validation and filtering features, how to send e-mail using the Zend_Mail component, and how to foil spammer activity using a CAPTCHA.

  • Zend Framework Forms Fundamentals. In this opening step you'll learn how the Zend Framework recognizes forms variables as they're passed from the form back to the server.
  • Creating the GameNomad Contact Form. In this step we'll put what you learned in Step 1 into action by recreating GameNomad's contact form.
  • Validating Forms Data. In Chapter 4 we built a validation library for ensuring user input is submitted in an appropriate format. The ZendValidate component removes the need for you to maintain a custom library by providing a wide array of validation features. In this step you'll learn how to use ZendValidate to shore up the contact form, ensuring the user provides complete and syntactically correct information.
  • E-mailing User Input Using Zend_Mail. We need a means for transmitting the user input to your e-mail inbox, and in this step you'll learn how to use the Zend Framework's Zend_Mail component to fulfill that role.
  • Filtering Forms Data. While validation ensures input is submitted in the desired format, sometimes you may want to massage the data without necessarily declaring it invalid. For instance, if a user provides a valid e-mail address inadvertently followed by a few blank spaces, you'll want to remove those blank spaces before storing the address in the database. In this step you'll learn how to use Zend_Filter to perform these sort of normalization actions.
  • Confounding Spammers with CAPTCHAs. In their quest to spread the word about lottery winnings and weight-loss supplements, spammers have created programs for automating the completion and transmission of Web forms. Thankfully you can use a tool known as a CAPTCHA to thwart these programs from exploiting your forms to flood your inbox.

Chapter 8. Managing Your User Community

These days, a successful web-based venture is often the direct result of your ability to create a successful online community. In this chapter you'll learn how to build fundamental community mechanisms such as user registration, user login and logout, password recovery, user profile display, and connecting users via a simple social networking mechanism.

  • Creating the Users Table and Model. Before anything can be done with user management, we'll need to create a database table and model used to manage this data. We'll kick off this chapter by creating this table and model.
  • Registering Users. Once the model has been created we'll want to begin populating it by providing users with an account registration form. This form will prompt users to create an account password while providing any other registration-related information you'd like to collect, such as the user's name and location. In this step we'll build upon what you learned in the last chapter by creating the registration form which collects this information. You'll also learn how to confirm registration by forcing the user to click on a link found in an e-mail sent to his account following submission of the registration form.
  • Managing User Logins. The Zend Framework's Zend_Auth component makes it easy to manage user logins, providing mechanisms for logging the user into the site, maintaining the user's session as he interacts with the site, and logging the user out of the site. In this step you'll learn how these features are implemented. You'll also learn how to create a password recovery feature so the user can autonomously reset his password in the event it is forgotten.
  • Displaying User Profiles. Chances are you'll want to display user profile information on the website, in addition to other site content he's compiled over time. In this section you'll learn how to do this. For the purposes of demonstration this example will only include the user's name and last login date, but it will nonetheless serve as a basis for adding additional content. In fact, in the final step (discussed next) you'll learn how to integrate the user's friends list into this profile page.
  • Making Friends. In the final step of this chapter we'll create a mechanism for giving users the ability to identify other users as friends, thereby opening up the possibility for you to build features which allow friends to track the interactions of each other on the site, such as new additions to their game collection, or status updates regarding what game they're currently playing.

Chapter 9. Integrating Google Maps

Google's release of an interface to the popular Google Maps mapping solution opened the floodgates for thousands of location-based websites. In this chapter you'll learn how to use this API to integrate Google's mapping features into your own website. You'll also learn how to use the Google Geocoder to convert user's mailing addresses into latitudinal and longitudinal coordinates.

  • Introducing the Google Maps API: In this introductory step I'll introduce you to the Google Maps API, a powerful JavaScript library which makes it easy to integrate Google maps and map-related features into your website. Although in practice we'll communicate with this API using a PHP library named GoogleMapAPI, experimenting directly with the JavaScript API offers a great way to become familiar with its features.
  • Adding Mapping Services to Your Website: Interacting with the Google Maps API directly through the JavaScript interface is useful for understanding all it has to offer, for practical purposes we'll want to interact with the API using a PHP-based solution. A particularly powerful solution aptly named GoogleMapAPI provides the bridge we're looking for, making integration of the Google Maps API into your PHP-powered website a breeze. In this step you'll learn all about it. You'll also learn how to convert mailing addresses into their latitudinal and longitudinal coordinates, which Google requires to perform mapping tasks.

Chapter 10. Introducing the Amazon Product Advertising API

The Amazon Product Advertising API (formerly the Amazon Associates Web Service) offers developers around the globe with a great way to earn revenue by advertising Amazon's product catalog in new and interesting ways. In this chapter you'll learn how to take advantage of this program to create your own custom catalog. You'll also learn how to retrieve Amazon reviews for a particular product, and even how to use a neat Zend Framework view helper feature to tie a visually appealing starred effect to each review.

  • Introducing the Amazon Associates Web Service. In the chapter's opening step we'll talk more about the Amazon Associates Web Service (AWS), and discuss the advantages of creating an Amazon affiliate account. To round out the step, I'll show you how to create an AWS account and ready your Zend Framework-powered website to begin accessing AWS.
  • Introducing the ZendServicesAmazon Component. In this step I'll show you how query the Amazon database using the Zend Framework's ZendServicesAmazon component. You'll learn how to retrieve product attributes such as prices, images, sales ranks, descriptions, and other data crucial to building a great affiliate service.
  • Searching for Products. In the third step we'll build upon what was learned in Step #2, building more complex queries to mine the Amazon database in new and interesting ways.
  • Customer Reviews. Unbiased customer reviews can hold tremendous sway over a prospective buyer's purchasing decisions. In the fourth and final step of this chapter you'll learn how to retrieve and sort a product's reviews. Along the way we'll create a view helper for turning an integer-based rating value into a string of star icons.

Chapter 11. Enhancing the User Interface with Ajax

Enhancing the user experience by enhancing the interface is all the rage these days, a process most commonly done using JavaScript and a programming technique known as Ajax. In this chapter I'll introduce you to both JavaScript and Ajax, alongside the popular Prototype JavaScript framework and Scriptaculous library.

  • Introducing JavaScript. In this initial step I'll introduce you to the JavaScript language. Rather than endure an exhaustive review of basic syntax, we'll instead focus upon the JavaScript syntax which helps you begin implementing modern interactive features into your website.
  • Introducing Ajax. Rather than recreate complex Ajax features, why not rely on one of the many JavaScript frameworks to do the dirty work for you? In this section you'll learn about Prototype, a powerful JavaScript framework which although not officially supported by the Zend Framework, integrates very well nonetheless. You'll also learn about Script.aculo.us, which is a set of user interface-oriented JavaScript libraries which extend the Prototype framework in fascinating ways.

Chapter 12. Extend Your Website with RSS and FaceBook

Largely gone are the days where website developers can expect users to faithfully return to a website on a regular basis. Instead, today's users expect to be able to consume information in a format and at a time convenient to them, whether it be via email, a news aggregator such as http://news.google.com, or their own news aggregator such as SharpReader. Much of the information assembled in this digestable manner comes by way of RSS feeds, a convenient markup format similar to HTML which is conducive to publishing website updates and other information in digest format. In this chapter you'll learn how to publish your own feeds using the Zend Framework's Zend_Feed component.

This chapter also covers one of the hottest topics in Web development today, showing you how to create a Facebook application using the Facebook Platform. Creating a Facebook application is easier than you think, and has the potential to introduce your website to millions of new users.

  • Creating and Publishing RSS Feeds. In this opening step you'll learn how to both create and publish RSS feeds, giving users the ability to quickly scan the most popular games tracked by GameNomad as determined by Amazon.com sales trends.
  • Introducing Facebook Applications. In the second step you'll learn how to integrate GameNomad into Facebook, giving GameNomad users the ability to publish their pizzeria chain on their Facebook page. We'll start by introducing you to the Facebook platform, Facebook Connect, and the key Facebook technologies which make Facebook application development possible, including Facebook Markup Language, Facebook Query Language, and Facebook JavaScript.
  • Building Your First Facebook Application. In this third step we'll register and configure a new Facebook application, a process which doesn't involve any programming but does require you to have a general understanding of at least some of the many configuration settings available when building your application.
  • Introducing the Facebook PHP Client Library. While quite a few language libraries exist for creating Facebook applications, PHP developers are particularly blessed in that the Facebook team themselves wrote the official PHP client library, which is unsurprisingly the most popular library in use today. In this fourth step I'll introduce you to this library.
  • Creating GameNomad's Facebook Application. All third-party Facebook application logic is hosted and managed by the developer, giving you the flexibility to maintain your application in any manner you please. In the case of GameNomad, this logic is stored within the Facebook Controller (FacebookController.php). In this step we'll create this controller and some initial logic used to beging building out the application.
  • Creating a Profile Tab. While the primary purpose of the GameNomad Facebook application is to grant registered users an easy way to manage their GameNomad profile and collection, it would also be great if Facebook friends had an way to keep tabs on a user's collection. In this step I'll show you how to create a profile tab which can be added to the user's profile page.
  • Sending a Facebook User Notification. Users and their friends can be notified when a particular event occurs, such as when a friend adds a new game to his collection. In this section I'll show you how to send these notifications.
  • Adding Facebook Status Updates. Updating your Facebook status is one of the most interesting, and indeed addictive aspects of this social networking platform. In this step you'll learn how to send updates to a user's account via your application!
  • Deploying the Facebook Application. In this tenth and final step I'll show you how to deploy your Facebook application, and discuss steps you might consider taking to promote the application and track its popularity.

Chapter 13. Monitor Traffic and Manage Ads with Google

Putting countless hours into your website is somewhat fruitless if you lack the ability to closely track visitor traffic and demographics. Thankfully, doing so is a breeze using the Google Analytics web analytics service. In this chapter you'll learn how to configure this free service for use on your own website.

You'll also learn how to spread the word about your website using the world's most popular online advertising network, namely the Google AdWords advertising program. While you're at it, why not earn some advertising revenue by publishing ads on your website using the Google AdSense advertising program, another topic discussed in this chapter.

  • Monitoring Traffic with Google Analytics. In this opening scenario you'll learn how to analyze website traffic using the powerful Google Analytics package.
  • Advertising with Google AdWords. You'll eventually want to begin spreading the word about your website in an effort to increase traffic. One of the most effective ways for doing so is by advertising online through the Google AdWords network, and in this scenario you'll learn all about it.
  • Earn Money Using Google AdSense. Google's AdSense service offers a simple and effective solution for publishing ads on your website, and in this scenario you'll learn how.

Chapter 14. Accepting Online Payments with PayPal

In the final chapter of the book, we'll discuss e-commerce transactions using PayPal Checkout, which is one of the world's most popular services for accepting online payments. For those readers who require a somewhat more sophisticated e-commerce solution, we'll close the chapter with an overview of three popular e-commerce solutions.

  • Integrating PayPal Website Payments Standard. If you're interested in selling one item, using PayPal Checkout offers the most direct route to payment processing, as it requires . In this first step I'll show you how to start selling in just minutes using this solution.
  • Exploring Third-Party E-Commerce Solutions. Should you desire to implement a full-blown e-commerce solution including features such as electronic downloads, product categories, wishlists, bundled and product offers, I recommend seeking out a full featured third-party e-commerce solution rather than attempting to build your own. In this final step we'll survey some of the most popular solutions, namely Magento, Ubercart, and Shopify.

Supplements

Easy PHP Websites with the Zend Framework includes access to the following supplements.

TitleType
Easy PHP Websites with the Zend Framework PDF
Easy PHP Websites with the Zend Framework Source Code Source Code


 Join 700+ subscribers!


Have a question? Contact us!

The Community Firehose

News submitted by and about the PHP and Web development community.

Creating a Weather Forecast with PHP and the Google Weather API
Submitted by wjgilmore

How to Create an Image Gallery Powered By PHP and Picasa
Submitted by wjgilmore

Easy Databasing with SQLite
Submitted by wjgilmore

PHP IDE Roundup
Submitted by wjgilmore

Five Cool PHP Array Functions
Submitted by wjgilmore

Use jQuery with Greasemonkey
Submitted by wjgilmore

Encapsulation in PHP
Submitted by wjgilmore

Talking to Google Charts with PHP
Submitted by wjgilmore

Talking to Google Analytics with PHP
Submitted by wjgilmore

Building a jQuery/PHP-powered Chat Room
Submitted by wjgilmore

Cloud Computing with PHP
Submitted by wjgilmore

BattleMaster: A Web-based game written in PHP
Submitted by wjgilmore

Create an Image Rotator with CSS and jQuery
Submitted by wjgilmore

Submit News | News Archive

Copyright © 2009 W.J. Gilmore, LLC. All Rights Reserved. Purchase Policy · Privacy Policy
Trademarked names may appear on this website. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to no benefit of the trademark owner, with no intention of infringement of the trademark.