Americas

  • United States
sandra_henrystocker
Unix Dweeb

Discovering PHP

Analysis
Nov 05, 20084 mins
Computers and PeripheralsData CenterNetworking

If you’ve never used PHP, you might be very surprised to learn how easy it is to embed PHP commands in HTML files. The files don’t require execute privilege and don’t have to be stored in cgi-bin directory to work. In addition, reading and using data from forms is significantly easier since PHP stuffs the data into arrays. The $_POST[name] field, for example, would hold text entered into the “name” field in a form when the form uses the POST method to send the data. The $_GET array provides the same functionality for data sent using the GET method. If you want to write a script that is independent of the method — no problem: use $_REQUEST. This array contains the elements from the $_GET and $_POST along with the contents of $_FILES, $_COOKIE, $_SERVER and $_ENV as well. What you don’t ahve to worry about when using PHP is, therefore, how to read from standard in or the QUERY_STRING variable, how to break the data into a series of “parameter=value” pairs, how to break the parameter/value pairs apart and then unencode their values. PHP takes care of all of this for you.

The only downside that I see to PHP is that it’s not likely to be installed on your systems unless you make it so. When I installed it on a Solaris 9 box, I also had to install about eight additional packages and do some very modest reconfiguration of my Apache server to get it working.

PHP has a look which reminds one of C and Perl. That is, it assigns variables using a $name=value; syntax, uses // or /* and */ for comments and includes a wide set of functions, array capabilities and other high level language functionality. But just look how easily you can set up a form and send email in a single file:



<?php if (isset($_REQUEST['email']))
//if form is filled out, send email
  {
  //send email
  $email = $_REQUEST['email'] ;
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['message'] ;
  mail( "myself@example.com", "Subject: $subject",
  $message, "From: $email" );
  echo "Thank you.  Your request has been sent.";
  }
else
//if "email" is not filled out, display the form
  {
  echo "
  Your Email: 

  Subject: 

  Please explain your concern:

  

  
  ";
  }
?>



If you'd like a gentle but very effective introduction to PHP, I highly recommend the tutorial available at the W3Schools URL:

http://www.w3schools.com/php/default.asp

Once you've gotten your feet wet by wading through the example scripts, you might be ready to delve into O'Reilly's PHP Cookbook. The second edition of this task-oriented text contains hundreds of extremely useful code examples. All laid out in a problem, solution and discussion format, they provide code that you can use right out of the book or tailor to your needs.

The PHP Cookbook is in its 2nd edition, was published in 2006 and was written by David Sklar and Adam Trachtenberg. It's a getting stuff done by example book, but it's also a very serious programming text. The book contains an impressive amount of code, addresses some very practical applications and is very well thought out and organized.

Like other books in the cookbook series, the PHP Cookbook makes it easy for you to pick up the book with a particular task in mind and find just the right section to help you implement your code. You don't have to wade through a lot of material just to determine the context in which the answers are being provided.

O'Reilly also offers a Learning PHP 5 book for those not ready for the cookbook (which assumes a good amount of programming expertise), an "in a Nutshell" book and several other books, including two that address working with both PHP and MySQL.

sandra_henrystocker
Unix Dweeb

Sandra Henry-Stocker has been administering Unix systems for more than 30 years. She describes herself as "USL" (Unix as a second language) but remembers enough English to write books and buy groceries. She lives in the mountains in Virginia where, when not working with or writing about Unix, she's chasing the bears away from her bird feeders.

The opinions expressed in this blog are those of Sandra Henry-Stocker and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.