Forms are used to collect data from the users. In this shot, we'll learn how to work with HTML forms using the HTTP method, GET.
We'll learn:
The HTML form reminder
The GET method
Practice
Final notes
This is how a form looks like in HTML:
<html><body><form action="handle_form.php" method="GET"><input type="text" name="name" placeholder="Username here..."> <br/><input type="email" name="email" placeholder="Email here..."> <br/><input type="submit"></form></body></html>
As you can see in the code above, the form tag has two properties, action and method. Let's learn more about them.
action: This specifies the file or page that the form is submitted to. In our example, the form data will be submitted to the handle_form.php file.
method: This describes the transport means used to send data, mostly GET or POST.
In the form above, once the user submits the data, it will be sent to handle_form.php using the GET method.
Note:
In case we want the form data be handled in the same file, we can leave the
actionattribute empty:<form action="" >.If no method is specified,
GETis used by default.
GET methodWhen GET is used as a method, data is submitted as URL parameters to the handler server or page. In other words, the form is converted to a link containing all the values entered by the user.
Let's suppose that the user sent this data:
name: Sarah
email: salimas@gmail.com
On submission, the user will be redirected to the following URL:
In the handle_form.php file, the submitted data is contained in a special variable called $_GET. This last variable is an associative array where keys are the names of fields sent. So, for our example above, we have the following:
Name | Value |
$_GET['name'] | Sarah |
$_GET['email'] | salimas@gmail.com |
Note: The array key name is the
nameproperty in the HTML form field.
Let's now implement the code for handle_form.php:
<?php// handle_form.phpecho '<h1>Welcome at Educative</h1>';echo '<p>Username: ' . $_GET['name'] . '</p>';echo '<p>Email: ' . $_GET['email'] . '</p>';
Let's practice the GET method by putting all the previous code together.
<?php// handle_form.php$user_name = $_GET['name'];$email = $_GET['email'];// Basic controlif (!isset($user_name) || !isset($email)){echo 'Name or email field is empty.';// Stop PHP executionreturn;}echo '<h1>Welcome at Educative</h1>';echo '<p>Username: ' . $user_name . '</p>';echo '<p>Email: ' . $email . '</p>';
In handle_form.php, we introduce a basic form validation with isset(). Learn more about PHP validation here.
All submitted data is displayed in the URL. This may not be useful for us, especially if we have to collect sensitive data like passwords.
Additionally, GET has limits on the amount of data to send, which is 2000 characters. Therefore, if our form has a large number of fields, GET is not the appropriate method to use. In the real world, we use it for small forms like search forms with one or two fields.