Home >> FAQs/Tutorials >> PHP Script Tutorials and Tips >> Index

PHP Script Tips - Processing Web Forms

By: FYICenter.com

Part:   1  2   3  4  5  6  7  8 

(Continued from previous part...)

What Happens If an Expected Input Field Was Not Submitted?

Obviously, if an expected input field was not submitted, there will no entry in the $_REQUEST array for that field. You may get an execution error, if you are not checking the existence of the expected entries in $_REQUEST. For example, if you copy processing_forms.php to your local Web server, and run your browser with http://localhost/processing_forms.php?name=Joe, you will an error page like this:

You have submitted the following information:
  Name = Joe
  Comments = 
Thank you!

PHP Notice: Undefined index: 
  comment in ...\processing_forms.php on line 3 

How To Avoid the Undefined Index Error?

If you don't want your PHP page to give out errors as shown in the previous exercise, you should consider checking all expected input fields in $_REQUEST with the isset() function as shown in the example script below:

<?php
  if (isset($_REQUEST['name'])) {
    $name = $_REQUEST['name'];
  } else {
    $name = "";
  }
  if (isset($_REQUEST['comment'])) {
    $comment = $_REQUEST['comment'];
  } else {
    $comment = "";
  }
  print("<html><pre>");
  print("You have submitted the following information:\n");
  print("  Name = $name\n");
  print("  Comments = $comment\n");
  print("Thank you!\n");
  print("</pre></html>\n");
?>

How To List All Values of Submitted Fields?

If you want list all values of submitted fields, you can write a simple loop to retrieve all entries in the $_REQUEST array. Below is an improved version of processing_forms.php to list all submited input values:

<?php
  print("<html><pre>");
  $count = count($_REQUEST);
  print("Number of values: $count\n");
  foreach ($_REQUEST as $key=>$value) {
    print("  $key = $value\n");
  }
  print("</pre></html>\n");
?>

If you test this with submit_comments.php on your Web server, you will get something like:

Number of values: 2
  name = Fyi Center
  comment = Good job.

What Are the Input Values of SELECT Tags?

SELECT tags are used in forms to provide dropdown lists. Entris in a dropdown list are defined by OPTION tags, which can provide input values in two ways:

  • Implicit value - Provided as <OPTION>input_value</OPTION>, where input_value will be used as both the dropdown entry and the input value if this entry is selected.
  • Explicit value - Provided as <OPTION VALUE=input_value>display_value</OPTION>, where display_value will be used as the download entry, and input_value will be used as the input value if this entry is selected.

The sample PHP script page below is a modified version of submit_comments.php that has one SELECT tag named as "job" using implicit input values and another SELECT tag named s "site" using explicit input values:

<?php
  print("<html><form action=processing_forms.php method=post>");
  print("<table><tr><td colspan=2>Please enter and submit your"
    ." comments about FYICenter.com:</td></tr>");
  print("<tr><td>Your Name:</td>"
    ."<td><input type=text name=name></td></tr>\n");
  print("<tr><td>Your Job Title:</td>"
    ."<td><select name=job>"
    ."<option>Developer</option>"
    ."<option>QA Engineer</option>"
    ."<option>DBA</option>"
    ."<option>Other</option>"
    ."</select></td></tr>\n");
  print("<tr><td>Rate This Site:</td>"
    ."<td><select name=rate>"
    ."<option value=3>Good</option>"
    ."<option value=2>Average</option>"
    ."<option value=1>Poor</option>"
    ."</select></td></tr>\n");
  print("<tr><td>Comments:</td>"
    ."<td><input type=text name=comment></td></tr>\n");
  print("<tr><td colspan=2><input type=submit><td></tr></table>\n");
  print("</form></html>\n");
?>

(Continued on next part...)

Part:   1  2   3  4  5  6  7  8 


Selected Developer Jobs:

More...