Bird
Raised Fist0
PHPprogramming~5 mins

$_GET for URL parameters in PHP

Choose your learning style10 modes available
Introduction

$_GET lets you get information from the website address (URL). It helps your program know what the user wants by reading the details after the question mark in the URL.

When you want to know what a user typed in the URL to show specific content.
When you create a search page and want to get the search words from the URL.
When you want to pass small pieces of information between pages without using forms.
When you want to remember choices a user made by putting them in the URL.
When you want to create links that change what the page shows based on the URL.
Syntax
PHP
<?php
$value = $_GET['key'];
?>

$_GET is a special PHP array that holds all the URL parameters.

Each parameter is accessed by its name inside square brackets as a string.

Examples
This gets the 'name' from the URL and says hello to that name.
PHP
<?php
$name = $_GET['name'];
echo "Hello, $name!";
?>
This gets the 'page' parameter or uses 'home' if none is given.
PHP
<?php
$page = $_GET['page'] ?? 'home';
echo "You are on the $page page.";
?>
This checks the 'age' from the URL and tells if the user is an adult or minor.
PHP
<?php
$age = $_GET['age'];
if ($age >= 18) {
  echo "You are an adult.";
} else {
  echo "You are a minor.";
}
?>
Sample Program

This program reads 'color' and 'size' from the URL and shows them. If they are missing, it says 'unknown'.

PHP
<?php
// Example URL: example.com?color=blue&size=large
$color = $_GET['color'] ?? 'unknown';
$size = $_GET['size'] ?? 'unknown';
echo "Color: $color\n";
echo "Size: $size\n";
?>
OutputSuccess
Important Notes

Always check if a $_GET parameter exists before using it to avoid errors.

URL parameters are visible to users, so do not put sensitive information there.

Use htmlspecialchars() to safely show $_GET values on the page to avoid security issues.

Summary

$_GET reads information from the URL after the question mark.

It helps your PHP code know what the user wants or chose.

Always check if parameters exist and be careful with security.

Practice

(1/5)
1. What does the PHP $_GET superglobal do?
easy
A. It retrieves data sent in the URL query string after the question mark.
B. It stores data sent via a form using the POST method.
C. It saves session data for the user.
D. It connects to a database.

Solution

  1. Step 1: Understand the purpose of $_GET

    $_GET is used to get data sent through the URL query string, which comes after the question mark.
  2. Step 2: Compare with other PHP superglobals

    $_POST is for form data sent via POST, sessions are stored in $_SESSION, and database connections use other functions.
  3. Final Answer:

    It retrieves data sent in the URL query string after the question mark. -> Option A
  4. Quick Check:

    $_GET reads URL parameters [OK]
Hint: Remember: $_GET reads URL after '?' [OK]
Common Mistakes:
  • Confusing $_GET with $_POST
  • Thinking $_GET stores session data
  • Assuming $_GET connects to databases
2. Which of the following is the correct way to access a URL parameter named id using $_GET in PHP?
easy
A. $_GET->id
B. $GET['id']
C. get['id']
D. $_GET['id']

Solution

  1. Step 1: Recall PHP array syntax for superglobals

    $_GET is an associative array, so parameters are accessed with square brackets and quotes.
  2. Step 2: Check each option

    $_GET['id'] uses correct syntax: $_GET['id']. Others use wrong syntax or variable names.
  3. Final Answer:

    $_GET['id'] -> Option D
  4. Quick Check:

    Use square brackets and quotes for $_GET keys [OK]
Hint: Use $_GET['param'] to get URL parameters [OK]
Common Mistakes:
  • Using arrow (->) instead of brackets
  • Missing the dollar sign ($)
  • Using wrong variable names like $GET
3. What will the following PHP code output if the URL is page.php?name=Alice?
<?php
echo 'Hello, ' . $_GET['name'];
?>
medium
A. Hello, Alice
B. Hello,
C. Notice: Undefined index: name
D. Syntax Error

Solution

  1. Step 1: Identify the URL parameter

    The URL has name=Alice, so $_GET['name'] will be 'Alice'.
  2. Step 2: Understand the echo statement

    The code concatenates 'Hello, ' with the value of $_GET['name'], so it prints 'Hello, Alice'.
  3. Final Answer:

    Hello, Alice -> Option A
  4. Quick Check:

    URL param 'name' = 'Alice' outputs greeting [OK]
Hint: Echo $_GET['param'] prints URL parameter value [OK]
Common Mistakes:
  • Assuming empty output if parameter exists
  • Confusing undefined index error when parameter is present
  • Thinking code causes syntax error
4. Consider this PHP code snippet:
<?php
echo 'User ID: ' . $_GET['user_id'];
?>
What is the main problem if the URL does not include user_id parameter?
medium
A. It will print 'User ID: ' with no value.
B. It will cause a Notice about undefined index.
C. It will cause a fatal error and stop the script.
D. It will automatically assign a default value.

Solution

  1. Step 1: Understand accessing missing $_GET keys

    Accessing $_GET['user_id'] when it is not set triggers a PHP Notice about undefined index.
  2. Step 2: Differentiate error types

    This is not a fatal error, so the script continues, but a warning appears. No default value is assigned automatically.
  3. Final Answer:

    It will cause a Notice about undefined index. -> Option B
  4. Quick Check:

    Missing $_GET key triggers Notice [OK]
Hint: Check if parameter exists before using $_GET['key'] [OK]
Common Mistakes:
  • Assuming no error if parameter missing
  • Thinking it causes fatal error
  • Expecting automatic default values
5. You want to safely get a URL parameter page and show it, but if it is missing, show 'home' instead. Which PHP code correctly does this?
hard
A. echo $_GET['page'] ?? 'home';
B. echo $_GET['page'] ? 'home' : $_GET['page'];
C. echo isset($_GET['page']) ? $_GET['page'] : 'home';
D. echo $_GET['page'] || 'home';

Solution

  1. Step 1: Understand safe $_GET access

    To safely access URL parameters without triggering 'undefined index' notices, use isset() to check if the key exists.
  2. Step 2: Check each option

    echo isset($_GET['page']) ? $_GET['page'] : 'home';: echo isset($_GET['page']) ? $_GET['page'] : 'home'; checks existence first, avoiding notices, and provides 'home' default if missing. echo $_GET['page'] ?? 'home'; (??) does NOT trigger a notice in PHP 7+, so this explanation is incorrect. However, echo $_GET['page'] ?? 'home'; is valid syntax and safe. echo $_GET['page'] ? 'home' : $_GET['page']; inverts ternary logic. D uses ||, triggers notice, and mishandles empty strings.
  3. Final Answer:

    echo isset($_GET['page']) ? $_GET['page'] : 'home'; -> Option C
  4. Quick Check:

    isset ternary avoids notice for missing $_GET keys [OK]
Hint: Use isset($_GET['param']) ? $_GET['param'] : 'default' [OK]
Common Mistakes:
  • Using ?? which still triggers undefined index notice
  • Wrong ternary order
  • Using || which triggers notice and handles empty strings wrong
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard