How to use $_GET in PHP?
The application of the superglobal $_GET array, especially in connection with forms.
$_GET is an array that contains all parameters from the URL called up by the visitor. For example, if the requested URL is http://www.example.com/index.php?name=alex&id=10001&age=25, then $_GET would contain the following parameters:
- name = alex
- id = 10001
- age = 25
Accordingly, the $_GET array would be identical to array(‘name’ => ‘alex’, ‘id’ => ‘10001’, ‘age’ => ’25’). (All parameter keys and values are stored in the $_GET array as strings).
The $_GET array is a superglobal variable, so it can be called from anywhere in the script at any time. If no parameters were passed, the array is present but empty.
Example : URL with parameters
Assuming the following script is called via http://www.example.com/test.php?func=echo_message&message=welcome_to_stackhowto:
<?php
// Function for outputting a message passed by the user
function echoMessage($msg) {
// since the message was passed by the user, the content here must not be trusted blindly
// HTML control characters are therefore encoded
echo(
htmlentities($msg, ENT_QUOTES, 'UTF-8')
);
}
// Read out "func" parameter
// Attention: this parameter might not have been passed
// (URL would be e.g .: http://www.example.com/test.php?message=welcome_to_stackhowto)
// therefore you have to check here whether it is actually available
$func = (isset($_GET['func']) ? $_GET['func'] : '');
switch ($func) {
// show_message as a value for func
// a message should be displayed
case 'echo_message':
$message = (isset($_GET['message']) ? $_GET['message'] : '');
echoMessage($message);
break;
// ... here could be inserted further case's,
// so the visitor can call other functions
// default output if function unknown/not passed
default:
echo("No function selected!");
}
?>
Output:
welcome_to_stackhowto
Example : GET-based on form
In the next example, we will create a small form and sends its data via GET.
As soon as the form is submitted, the browser automatically appends the form’s input to the URL as a parameter. So there is no difference for the PHP code between submitting the form and calling it directly via URL with parameters.
<?php
if (isset($_GET['keywords'])) {
echo('Searched for ' . htmlentities($_GET['keywords'], ENT_QUOTES, 'UTF-8') . '<br>'."\n");
echo('Results: None.');
}
?>
<form method="GET" action="?">
<input type="text" name="keywords" />
<input type="submit" value="Search" />
</form>
Output after submitting the form (with input “StackHowTo”):
Searched for StackHowTo





