Form Processing with PHP

Started by VelMurugan, May 20, 2009, 01:53 AM

previous topic - next topic
Go Down

VelMurugan

Form Processing with PHP

One of the best features of PHP is possibility to respond to user queries or data submitted from HTML forms. You can process information gathered by an HTML form and use PHP code to make decisions based off this information to create dynamic web pages. In this tutorial we will show how to create an HTML form and process the data.

The HTML Form


Before you can process the information, you need to create an HTML form that will send information to your PHP script. There are two methods for sending data: POST and GET. These two types of sending information are defined in your HTML form element's method attribute. Also, you must specify the location of the PHP file that will process the information.

Below is an HTML form that will send the data using the POST method. Information sent from a form with the POST method is invisible to others and has no limits on the amount of information to send. Copy and paste this code and save it as form.html.

Code: [Select]
<html>
<head>
  <title>Process the HTML form data with the POST method</title>
</head>
<body>
  <form name="myform" action="process.php" method="POST">
    <input type="hidden" name="check_submit" value="1" />
    Name: <input type="text" name="Name" /><br />
    Password: <input type="password" name="Password" maxlength="10" /><br />
    Select something from the list: <select name="Seasons">
      <option value="Spring" selected="selected">Spring</option>
      <option value="Summer">Summer</option>
      <option value="Autumn">Autumn</option>
      <option value="Winter">Winter</option>
    </select><br /><br />
    Choose one:
      <input type="radio" name="Country" value="USA" /> USA
      <input type="radio" name="Country" value="Canada" /> Canada
      <input type="radio" name="Country" value="Other" /> Other
    <br />
    Choose the colors:
      <input type="checkbox" name="Colors[]" value="green" checked="checked" /> Green
      <input type="checkbox" name="Colors[]" value="yellow" /> Yellow
      <input type="checkbox" name="Colors[]" value="red" /> Red
      <input type="checkbox" name="Colors[]" value="gray" /> Gray
    <br /><br />
    Comments:<br />
    <textarea name="Comments" rows="10" cols="60">Enter your comments here</textarea><br />
    <input type="submit" />
  </form>
</body>
</head>
</html>


The example HTML page above includes different form elements: input fields, select list, text area, radio buttons, checkboxes and a submit button. When a user fills in this form and clicks on the submit button, the form data is sent to the process.php file.

Notice that we have added square brackets [] to the name of the checkbox element. The reason for the square brackets is that it informs PHP that the value may be an array of information. Users can select multiple values, and PHP will place them all into an array of the value of the name attribute.

For example, if you pick Green and Yellow and submit the form, then $_POST['Colors'] is itself an array. $_POST['Colors'][0] is Green and $_POST['Colors'][1] is Yellow. That's because the name attribute of the checkbox element is Colors[]. If the name was just Colors, then $_POST['Colors'] would be a string, holding only one of the selected values.

Source : webcheat

VelMurugan

Processing the Form Data ( PHP Code )

Next, we are going to create our PHP file that will process the data. When you submit your HTML form PHP automatically populates two superglobal arrays, $_GET and $_POST, with all the values sent as GET or POST data, respectively. Therefore, a form input called 'Name' that was sent via POST, would be stored as $_POST['Name'].

Copy and paste this code and save it as process.php in the same directory as form.html.

Code: [Select]
<?php
//Check whether the form has been submitted
if (array_key_exists('check_submit'$_POST)) {
   
//Converts the new line characters (\n) in the text area into HTML line breaks (the <br /> tag)
   
$_POST['Comments'] = nl2br($_POST['Comments']); 
   
//Check whether a $_GET['Languages'] is set
   
if ( isset($_POST['Colors']) ) { 
     
$_POST['Colors'] = implode(', '$_POST['Colors']); //Converts an array into a single string
   
}

   
//Let's now print out the received values in the browser
   
echo "Your name: {$_POST['Name']}<br />";
   echo 
"Your password: {$_POST['Password']}<br />";
   echo 
"Your favourite season: {$_POST['Seasons']}<br /><br />";
   echo 
"Your comments:<br />{$_POST['Comments']}<br /><br />";
   echo 
"You are from: {$_POST['Country']}<br />";
   echo 
"Colors you chose: {$_POST['Colors']}<br />";
} else {
    echo 
"You can't see this page without submitting the form.";
}
?>


Let's give a little explanation. At the first line we check whether the form has been submitted and the php script has not been called directly. Next we convert the new line characters in the text area into HTML line breaks. Then we check whether a $_POST['Colors'] is set and if so we use implode() function to convert $_POST['Colors'] array into a single string. Finally, we print out all received values in the browser.

VelMurugan

GET and POST

When defining the method to send information to the PHP script, you either use GET or POST. Both send variables across to a script, but they do so in different ways.

The GET method sends its variables in the web browsers URL, which makes it easy to see and possibly change the information that was sent. So this method should not be used when sending passwords or other sensitive information. It also should not be used for any actions that cause a change in the server, such as placing an order or updating a database. However, because the variables are displayed in the URL, it is possible to bookmark the page.

The GET method has a limit on the amount of information than can be sent. As a result, if you send long variables using GET, you are likely to lose large amounts of them.

The POST method sends its variables behind the scenes and has no limits on the amount of information to be sent. Because the variables are not displayed in the URL, it is not possible to bookmark the page.

Go Up
 

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.
Name:
Email:
Verification:
Please leave this box empty:

Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:

shortcuts: alt+s submit/post or alt+p preview
IT Acumens Web Designing Chennai | GinGly :: Build your Personal Website | CineBuzz :: Cinema News | My Kids Diary :: Kids Memories Writing :: Book Website @ 349 Rs monthly
Copyright 2005 - 2020 :: IT Acumens :: All Rights Reserved. :: Sitemap
ITAcumens Discussion Forum with 2 lakhs post running for 15 years - Powered by IT Acumens Dedicated Server