Bird
Raised Fist0
PHPprogramming~15 mins

$_GET for URL parameters in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Using $_GET to Read URL Parameters in PHP
📖 Scenario: You are building a simple PHP page that greets users by their name passed in the URL.
🎯 Goal: Create a PHP script that reads a name parameter from the URL using $_GET and displays a greeting message.
📋 What You'll Learn
Create a PHP variable to store the name parameter from $_GET
Set a default value if the name parameter is not provided
Display a greeting message using the name variable
💡 Why This Matters
🌍 Real World
Reading URL parameters is common in web pages to customize content based on user input or links.
💼 Career
Understanding how to use <code>$_GET</code> is essential for PHP web developers to handle user requests and build dynamic websites.
Progress0 / 4 steps
1
Create a PHP variable to get the name parameter from the URL
Write a line of PHP code to create a variable called name that gets the value from $_GET['name'].
PHP
Hint

Use $name = $_GET['name']; to get the URL parameter.

2
Add a default value if name is not set in the URL
Add a line of PHP code to set $name to "Guest" if $_GET['name'] is not set or empty.
PHP
Hint

Use empty() to check if $name has no value and assign "Guest" if true.

3
Create a greeting message using the name variable
Write a line of PHP code to create a variable called greeting that stores the string "Hello, " followed by the value of $name.
PHP
Hint

Use the dot . operator to join strings in PHP.

4
Display the greeting message
Write a line of PHP code to print the $greeting variable.
PHP
Hint

Use print($greeting); to show the message on the page.

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