PHP Programming

We specialize in PHP programming and MySQL databases. We write custom PHP programs and customize PHP/MySQL-based packages like open source software products: WordPress blogs, osCommerce (open source eCommerce solution), and OpenX, formerly known as phpAdsNew (open source Ad Management solution). We have interfaced osCommerce and custom-developed order forms with payment gateways like AuthorizeNet and Plug’n Play.

Sampling of Custom PHP Programming

Contest Tracking and Display

CrossFit of Marlboro, Marlborough MA held a push up challenge entitled 100 Push Ups for 100 Days

Business Requirements:

  1. Allow members participating in the Push Ups contest to enter the number of push ups they complete each day
  2. Allow members to access their own push up tallies and not anyone else’s
  3. Display tally of participants’ progress on the public website


  1. Create a password-protected data entry screen to capture members’ push ups each day

    Password Protected contest data entry screen

    Password-protected contest data entry screen

  2. Create a screen to display members’ progress (See Push Up Contest Progress )

Technical: The contest data entry screen is defined in a custom PHP program that is referenced in WordPress’ functions file and called into the screen via a shortcode. The built-in WordPress password-protection mechanism was used to control access to the contest data entry screen. The data is stored in a custom table inside the WordPress database, and the contest progress display screen is a custom PHP program, also referenced via the functions file and called into the display screen via a shortcode.

Custom WordPress Form

Custom WordPress Form

Custom WordPress form adds contributor and post at same time

Your Gift Certificate (YGC) of Southborough, MA requested that recipients of their housewarming gift box be able to tell the story of how valuable the offers and coupons enclosed in the gift box were to them as recent homebuyers.

Requirements included:

  • Allow unregistered users to easily enter their stories and submit them for publication
  • Do¬† not allow the story to be public¬† without YGC’s approval
  • Notify YGC when there is a new story to publish
  • Ready the story for publishing so that all that YGC needs to do is hit the Publish button
  • Thank the homebuyers for entering their stories


  • Create a custom PHP form with the fields required by YGC
  • Do field validation with JavaScript
  • When the form is submitted, the homebuyer sees a Thank You screen. Behind the scenes,
    • the data is tested in PHP
    • the homebuyer is added as “contributor” in the WordPress back end
    • the post is added to the other blog posts
    • an email is sent to YGC notifying them that there is a new story to Publish

(Authors designated as “contributor” in WordPress cannot publish posts. Contributors can enter draft posts. Only WordPress users designated as editors and admins can publish the work of a contributor. )
Dynamic Projects Page

AM Roofing PHP programming for Projects web page

Dynamic projects web page

A&M Roofing Services in Andover, MA hired Adventures Online to develop custom maintenance modules that enable its staff to:

  • Add unlimited projects to display on the Project overview page (above)
  • Upload unlimited photos per project
  • Add a robust description for each project
  • Display each project with associated photos on its own project detail page
  • Automatically update the link on the home page to link to the current designated “featured” project.
  • November 2012, PHP, MySQL

Blog Preview Window

PHP-based blog preview window

PHP-based blog preview window

Kathy Ekdahl of Personal Best Personal Training of Hudson MA is an experienced and credentialed personal trainer who specializes in sports training for young athletes as well as golfers.

Kathy has hired Adventures Online to develop a number of websites for her businesses over the years. One unique project was to create a blog preview window on the Home page to entice visitors to spend time in her blog. Kathy has been blogging since 2004. She is a prolific, thoughtful writer who provides useful information.

Adventures Online wrote a custom PHP program that finds the latest post in the blog and displays the first 25 words of the post in the preview window on the Home page (bottom left with circle background – What’s on Kathy’s Mind). Included in the blog preview is a link to the full post. When the link is clicked, the blog displays with the full post at the top.

Dynamic Selection Fields
Vehicle Selection Form

Adventures Online created a highly customized Customers-Only section for an on-site oil changing service operating out of Marlborough MA. Its clients were located throughout New England.

The client wanted a Customers-Only section where new customers could sign up online, create a personal profile and build a portfolio of their vehicles, and, where existing customers could log in, manage their vehicle portfolio and schedule maintenance for their vehicles.

A special requirement for the Add a Vehicle process was that the choices displayed in the Year, Make, and Model selection pull-down lists be “valid”choices; meaning that the list of Years could only include the list of years that the oil changing business would service (2005+), and the list of Makes could only include the Makes that existed in the Year was chosen, and that the list of Models could only include models available in the year:make combination that had just been selected. Because each customer would choose different year-make-model combinations and those combinations were impossible to predict, the selection fields needed to be dynamically-generated based on the current customer’s selections.

When the website was launched, there were nearly 12,000 Year-Make-Model combinations that had been uploaded to a MySQL database.

  1. A custom PHP program was written to insert the initial ~12,000 year-make-model combinations into the online database.
  2. An online module was created so that oil changing business could maintain (add, change and delete) year-make-model combinations.
  3. Custom PHP programs were written to extract Year-Make-Model combinations to text files. (The text files are used to load the Year, Make, Model selection fields.)
  4. JavaScript programs were written to determine which text files to use to load the correct selections in the Year, Make and Model fields.

Adventures Online used a combination of PHP and JavaScript to develop the programming and a MySQL database to store the data.

PHP Dynamic Site Plan
PHP Dynamic Site PlanSteve McKenna & The Home Advantage Team, Arlington MA, the exclusive real estate sales team for Prescott Farms in Bedford MA, hired Adventures Online to bring life to the online Prescott Farms site plan. Although the plan is a simple drawing, there are highly complex, multi-tiered PHP programs running behind the scenes that make the site plan respond differently depending on the phase of the build, the clicking actions of the current viewer and the status of the lot that is clicked.

Business Requirements

  1. Website visitors should be able to:
    • Quickly understand which lots are available with just a glance at the plan
    • Click on each lot and learn the details about it, like the size of the lot, the home styles that can be built on it and the asking price for each home style
    • Click on each home style to see the details of the home style, like see a rendering of the floor plan, a written description of the style and the parameters for customization.
  2. Staff should be able to:
    • Change the status of a lot at any time
    • Update information about each lot – like the size and the styles of homes that can be built on the lot
    • Open and close phases of the build
    • Add and remove lots from phases
  3. Updates should be immediately visible on the website.


  1. Assign colors to the different statuses that a lot can have. Add a legend to the site plan. *
  2. Create four graphics for each lot, one in each color (status) . *
  3. Create an online MySQL database to store the status and other information about each lot
  4. Write custom spreadsheet-like PHP programs to enable staff to update (add, change, delete) the status of the lots, the detailed information about each lot, the phase of the build, and the lots included in each phase.
  5. Write JavaScript scripts and PHP programs to determine which colored graphic of a lot to display on the site plan
  6. Write custom PHP programs to dynamically display a lot’s details (lot size, house styles available for this lot, and pricing for each house style on the lot) -depending on its status
  7. Write custom PHP programs to dynamically display information about each house style (like a rendering of the floor plan, a written description of the style, and customization parameters).

This is an ideal application for high-end real estate agents with exclusive agreements on new home developments!

* Graphic design by Circle Graphics, Hingham MA

[In February 2009 all the lots were sold and the website was removed.]

Other PHP Programming Efforts

Personal Best Personal Training, Marlborough MA
Besides being an attractive and informative website, this website has a very robust backend that helps the owner communicate with her clients and manage her business. There is a password-protected Administration Module that the owner uses to monitor clients’ progress, manage health forms processing, and produce reports. Also in the backend, there is a password-protected Members-Only section where members enter food and exercise logs, have access to special fitness articles and the online encyclopedia of exercises, download fitness programs, enter the comprehensive intake forms, and more.

Over 30 PHP programs and two MySQL databases were used to create the Adminsitrative and Members-Only modules.

Regional Chamber of Commerce, Marlborough MA
The Chamber wanted to display the membership list in small, discrete packages. Adventures Online used PHP to interface with a MySQL database to group, retrieve and display information about Chamber members. Try it out!

In the backend, there is a Maintenance Module which the Chamber uses to maintain its Calendars of Events and lists of Directors and Officers. As soon as updates are made to either of these, they are visible on the website, and, since the maintenance module is at the website, staff can make updates any time they want from wherever they are. The Calendars and lists of Directors and Officers are dynamically generated from the MySQL database each time they are viewed.

To bring life to your site, contact us today: 508-480-8833