PHP GET vs POST vs REQUEST Methods

In PHP, the $_GET, $_POST, and $_REQUEST superglobals are used to collect form data. While they all serve similar purposes, each has its unique characteristics and use cases. Let’s dive into each one!

🔹 What is $_GET?

The $_GET method is used to send data via the URL. This method is typically used for non-sensitive information, like search queries or page navigation, since the data is visible in the URL.

📝 Example 1: Using $_GET to Collect Data

This form submits data using the GET method:

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

In the PHP file, retrieve the submitted data using $_GET:

<?php
if (isset($_GET['username'])) {
    $username = $_GET['username'];
    echo "Hello, $username!";
} else {
    echo "Please enter your name.";
}
?>

Try It Now


🔹 What is $_POST?

The $_POST method is used to send data via an HTTP POST request. Unlike $_GET, the data is not visible in the URL, making it a better choice for sensitive information like passwords.

📝 Example 2: Using $_POST to Collect Data

This form submits data using the POST method:

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

In the PHP file, retrieve the submitted data using $_POST:

<?php
if (isset($_POST['username'])) {
    $username = $_POST['username'];
    echo "Hello, $username!";
} else {
    echo "Please enter your name.";
}
?>

Try It Now


🔹 What is $_REQUEST?

The $_REQUEST method is a combined superglobal that retrieves data from both $_GET and $_POST methods, as well as $_COOKIE data. It’s useful when you’re unsure which method will be used for submission, but it may pose security risks as it includes data from multiple sources.

📝 Example 3: Using $_REQUEST to Collect Data

This form works with both GET and POST methods, and you can access the submitted data using $_REQUEST:

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

In the PHP file, retrieve the submitted data using $_REQUEST:

<?php
if (isset($_REQUEST['username'])) {
    $username = $_REQUEST['username'];
    echo "Hello, $username!";
} else {
    echo "Please enter your name.";
}
?>

Try It Now


🔹 Key Differences Between $_GET, $_POST, and $_REQUEST

  • $_GET – Sends data via the URL, visible to everyone. Best for non-sensitive information like search queries.
  • $_POST – Sends data in the body of the request. More secure for sensitive data like passwords or personal information.
  • $_REQUEST – Retrieves data from $_GET, $_POST, and $_COOKIE. Use cautiously as it can introduce security risks.

📝 Practice Time!

Modify the form to send data with both GET and POST methods. Retrieve the data using $_GET, $_POST, and $_REQUEST to compare their behavior!