So, want to see what I can do?
Tired of promises and let downs?
Want to see source code?
Want to see running applications?
It's all here.
This is where you'll find examples from my skill set, with an emphasis on working demos, usually with source code provided. I'll draw from past projects, when no confidentiality concerns exist, and show you the types of projects I'm particularly positioned to support.
Let's be frank about it. The demos here are old, from 2005, when I was first learning PHP. I would write them better today, and need to add some that better reflect my current skills. Thank goodness for word-of-mouth referrals. I've been working on client's projects, and need to give my own site some TLC. So, ...
I am planning an exciting new demo sometime after returning from php|tek. Stay tuned.
One tiny demo is a Seasonal Web Site Header/Banner Scheduler. This is an Administrative utility for a web site that manages the schedule for displaying appropriate seasonal headers or banners. It also demonstrates how the correct banner for the current date is displayed. This scheduler could be adapted to several different uses.
The demonstration highlights server-side form validation of form elements often ignored, such as checkboxes and drop-down selection boxes. These need to be validated as well as text input fields because an attacker could easily modify the HTML or JavaScript source of a client-side form, and present the server-side form processing script with unexpected or harmful data. You don't want your applications vulnerable to database or code injection! I've included and documented an example in the source code of a very common debugging technique that should not be left in your production code, in case some error causes your program to crash and display error messages revealing information about your database that could be useful to an attacker. This script also demonstrates date manipulation and error checking. For instance, ending dates cannot precede starting dates (the script does correctly handle year-end Dec/Jan crossovers), display periods for a banner cannot overlap, and dates are checked to make sure they are valid Gregorian Calendar dates. Drop me a line if you have any questions or comments.
The next demo is a sortable table of php.ini directives. Give it a spin, and feel free to check out the source code. Use the browser Back button to return to this page from the demo. This little utility highlights a) handling duplicate radio button input, b) handling undefined or bogus form input resulting from curious or malevolent users, c) one use of variable variables, and d) preserving form input from one HTTP page request to another without the use of cookies. Drop me a line if you have any questions or comments. I would SO do this differently now!
The first demo was this web site itself. It is composed of a set of html "sections" coupled with PHP code to produce each page you visit. There is only one navigation file, a single header, a single footer, and files containing portions of the page bodies. Each page is dynamically constructed from these component files, using this function, which makes appropriate text substitutions in the other files before presenting them to the browser. A change to a single file representing the navigation bar, for instance, is automatically and instantly reflected in any page using that navigation bar. This is not the best way to handle static content, but does provide a very basic demonstration.
More demos are definitely on the way, as well as some that are really PHP tutorials. Any comments or questions about anything you see here? Please contact me today.