The purpose of this class is to introduce web programming using two "open
source" products, the PHP server-side scripting language and the MySQL
relational database system. The open source movement is best known for
products like the Linux kernel and operating system and the Apache web server.
One major advantage of using these is that they are available at no charge or
at a very minimal cost. Although not immediately obvious, another major
advantage is that the source code for these products is available for your
review and even modification and extension.
At the "beginning" level course, many participants will have little or no
experience with Linux or programming. As such, we will spend part of the
first day covering the details of logging into our Linux server from class or
home, navigating the file system, and creating and editing files which are
available to the Apache web server so they may be presented to the world wide
web.
Although there is no required textbook for this class, the following are
some books which I have found to be helpful. The links below inclue my Amazon
Associates ID. You can also find them at a discount at
San Diego Technical Books which is
located a few blocks from the school.
Linux Operating System
Learning Red Hat Linux
by Bill McCarty
O'Reilly & Associates; ISBN: 0596000715; 2nd Bk & cdr edition (January 2002) A great introduction to the Linux operating system and the Red Hat distribution.
Linux in a Nutshell
by Ellen Siever, Stephen Spainhour, Stephen Figgins, Jessica P. Hekman
O'Reilly & Associates; ISBN: 0596000251; 3rd edition (January 15, 2000) A good reference guide with lists of popular commands and options, alphabetically arranged.
Linux Desk Reference
by Scott Hawkins
Prentice Hall PTR; ISBN: 0130619892; 2nd edition (August 22, 2001) A very good reference guide with popular commands and options, arranged in chapters by broad topics.
PHP Programming Language
PHP for the World Wide Web
by Larry Ullman
Peachpit Press; ISBN: 0201727870; 1st edition (March 27, 2001) An excellent introduction to programming and PHP for those with little experience in either.
PHP Advanced for the World Wide Web
by Larry Ullman
Peachpit Press; ISBN: 0201775972; 1st edition (December 15, 2001) Covers many advanced topics including databases, security, object-oriented programming, and XML.
PHP Developer's Cookbook
by Sterling Hughes, Andrei Zmievski
Sams; ISBN: 0672323257; 2nd edition (December 13, 2001) My favorite PHP reference. Each chapter has a topic with problems and sample code to solve a given programming issue.
PHP Developer's Dictionary
by R. Allen Wyke, Michael J. Walker, Robert M. Cox
Sams; ISBN: 0672320290; 1st edition (December 2000) A good reference but the main PHP.net web site is as good or better.
PHP Pocket Reference
by Rasmus Lerdorf
O'Reilly & Associates; ISBN: 0596004028; 2nd edition (November, 2002) A good reference, written by the creator of PHP; the second edition covers PHP4. Small and cheap.
Programming PHP
by Rasmus Lerdorf, Kevin Tatroe
O'Reilly & Associates; ISBN: 1565926102; 1st edition (March 2002) A very good introduction, written by the creator of PHP. Covers several advanced topics.
PHP Cookbook
by David Sklar & Adam Trachtenberg
O'Reilly & Associates; ISBN: 1565926811; 1st edition (November 2002) Another problem-solution book for PHP. Covers several advanced topics.
Professional PHP4 Multimedia Programming
by Allan Kent, Devon H. O'Dell, Andy Chase, Jan Rosa, Sanjay Abraham, Iman S.H. Suyoto, and Kapil Apshankar
Wrox; ISBN: 1861007647; 1st edition (2002) A great book on using PHP to do interesting things with multimedia, including still and animated graphics, PDFs and FDFs, and generating WAP content for wireless devices like cellular phones.
Foundation PHP for Flash
by Steve Webster
friends of Ed; ISBN: 1903450160; 1st edition (September 2001) Details how to link Flash pages with PHP and databases like MySQL. A newer edition covering Flash MX would be welcome.
MySQL Client-Server Relational Database System
Teach Yourself SQL in 10 Minutes
by Ben Forta
Sams; ISBN: 0672321289; 2nd edition (April 26, 2001) Each chapter is designed to take 10 minutes. Covers Structured Query Language syntax.
SQL in a Nutshell
by Kevin Kline, Daniel Kline
O'Reilly & Associates; ISBN: 1565927443; (December 1, 2000) Very good reference. Covers Structured Query Language syntax for MySQL, Oracle, MS SQL, and PostgreSQL.
Teach Yourself MySQL in 21 Days
by Mark Maslakowski
Sams; ISBN: 0672319144; 1 edition (June 23, 2000) Very good reference though a little dated. A new edition, by different authors, is due out in September.
MySQL & mSQL
by Randy Ja Yarger, George Reese & Tim King
O'Reilly & Associates; ISBN: 1565924347; 1 Ed edition (August 1999) Very good reference.
Web Database Applications with PHP & MySQL
by Hugh E. Williams, David Lane
O'Reilly & Associates; ISBN: 0596000413; 1st edition (March 2002) An interesting book with practical examples of complex systems.
In addition to printed books, there are a number of useful references for Linux, Apache, PHP, and MySQL.
Here are a few of the more important ones.
Describe how to log in from home via Secure Shell (SSH)
Overview of class
Basic Linux: navigating the file system and editing files for the web server
Introduction to PHP and dynamic server-side scripting
Day 2
Installation of Red Hat Linux 7.3, Apache web server, MySQL, and PHP (LAMP)
Basic SQL with MySQL (as time permits).
Day 3
Core programming concepts for PHP
Variables (scalar and arrays)
Control structures (if...then, while, foreach)
Form processing (basic)
Reading and writing files in the filesystem
Days 4 and 5
Develop a database-driven web site including
Page to display a single record
Page to allow searches for records which match desired criteria
Password-protected administrative page to edit existing records
Password-protected page to enter new records
Page to export table as a MySQL dump file or Excel Spreadsheet
Intermediate / Advanced Class
This class uses a series of small projects to illustrate how to use PHP to
solve common and interesting web applications. These may include:
Sophisticated form processing and database access.
Making form elements 'sticky' (hold their value).
Use PHP to send e-mail.
Allow clients to upload files.
Allow users to alter their MySQL password.
PHP as a templating system.
Extraction of code or content from other web sites.
Validate credit card numbers.
Simple invoice with credit card payment via PayPal.
Create dynamic graphs and charts with Vagrant or JpGraph class.
PHP-generated Adobe Acrobat documents.
Mapping and Zip Codes for PHP programs.
Using PHP to Create and Consume Web Services.
Flash Forms for PHP.
Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/keeline/public_html/iteachphp/index.php on line 130
The site will be updated throughout the semester both with new content
and as a way to try out technologies used in several of the classes.
This file modified 14-Jan-2007.