When you work with PHP, you often need to pass variables from one page to another. This lesson is about passing variables in a URL.
How does it work?
Maybe you have wondered why some URLs look something like this:
Why is there a question mark after the page name?
The answer is that the characters after the question mark are an HTTP query string. An HTTP query string can contain both variables and their values. In the example above, the HTTP query string contains a variable named “id”, with the value “1254”.
Here is another example:
Again, you have a variable (“name”) with a value (“Joe”).
How to get the variable with PHP?
Let’s say you have a PHP page named people.php. Now you can call this page using the following URL:
With PHP, you will be able to get the value of the variable ‘name’ like this:
So, you use $_GET to find the value of a named variable. Let’s try it in an example:
<html> <head> <title>Query string</title> </head> <body> <?php // The value of the variable name is found echo "<h1>Hello " . $_GET["name"] . "</h1>"; ?> </body> </html>
When you look at the example above, try to replace the name “Joe” with your own name in the URL and then call the document again! Quite nice, eh?
Several variables in the same URL
You are not limited to pass only one variable in a URL. By separating the variables with &, multiple variables can be passed:
This URL contains two variables: name and age. In the same way as above, you can get the variables like this:
Let’s add the extra variable to the example:
<html> <head> <title>Query string </title> </head> <body> <?php // The value of the variable name is found echo "<h1>Hello " . $_GET["name"] . "</h1>"; // The value of the variable age is found echo "<h1>You are " . $_GET["age"] . " years old </h1>"; ?> </body> </html>
Now you have learned one way to pass values between pages by using the URL. In the next lesson, we’ll look at another method: forms.