When building web applications, it's common to have forms where users can input data. PHP provides powerful mechanisms to handle form submissions and process user input. Let's explore how to accomplish this effectively.

Creating a Form:

First, you need to create an HTML form to collect user input. Here's an example form that collects a user's name and email address:

<form action="process.php" method="post">
Name: <input type="text" name="name"><br>
Email: <input type="email" name="email"><br>
<input type="submit" value="Submit">
</form>
 

In this form:

  • The action attribute specifies the URL to which the form data will be submitted (in this case, process.php).
  • The method attribute specifies the HTTP method to be used for submitting the form (usually post or get).
  • Input fields are defined with various types (text, email, etc.), and each has a name attribute, which will be used to identify the data when submitted.

Processing Form Data in PHP:

After the user submits the form, the data is sent to the specified PHP script (process.php in this case) for processing. Let's see how to handle this data in PHP:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
 // Retrieve form data
 $name = $_POST["name"];
 $email = $_POST["email"];

 // Validate and process the data
 if (!empty($name) && !empty($email)) {
 // Process the data further (e.g., store in a database)
 echo "Name: " . $name . "<br>";
 echo "Email: " . $email;
 } else {
 echo "Please fill out all fields.";
 }
}
?>
 

In this PHP script:

  • $_SERVER["REQUEST_METHOD"] is used to determine if the form was submitted using the POST method.
  • $_POST["name"] and $_POST["email"] are used to retrieve the values submitted through the form.
  • The data is then validated and processed. In this example, we check if both the name and email fields are not empty. If they are not empty, we can proceed to process the data further (e.g., store it in a database). Otherwise, an error message is displayed.

Example: Handling Form Submission and Displaying Results:

Let's combine the form and PHP processing code into a single example:

<!-- HTML form -->
<form action="process.php" method="post">
    Name: <input type="text" name="name"><br>
    Email: <input type="email" name="email"><br>
    <input type="submit" value="Submit">
</form>

<?php
// process.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    $email = $_POST["email"];
    
    if (!empty($name) && !empty($email)) {
        echo "<h2>Form Submitted Successfully</h2>";
        echo "Name: " . $name . "<br>";
        echo "Email: " . $email;
    } else {
        echo "<p>Please fill out all fields.</p>";
    }
}
?>
 

In this example:

  • When the user submits the form, the data is sent to process.php.
  • In process.php, the data is retrieved using $_POST and then validated.
  • If the data is valid, a success message along with the submitted data is displayed. Otherwise, an error message is shown.



Practice Excercise Practice now