Bird
Raised Fist0
PHPprogramming~10 mins

$_GET for URL parameters in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to get the value of the URL parameter named 'name'.

PHP
<?php
$name = $_GET[[1]];
echo "Hello, $name!";
?>
Drag options to blanks, or click blank then click option'
A"name"
B"value"
Cname
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting quotes around the parameter name.
Using a variable instead of a string key.
2fill in blank
medium

Complete the code to check if the URL parameter 'age' is set.

PHP
<?php
if (isset($_GET[[1]])) {
    echo "Age is set.";
} else {
    echo "Age is not set.";
}
?>
Drag options to blanks, or click blank then click option'
Aage
B"age"
CAGE
D"AGE"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted parameter names in isset().
Using uppercase letters instead of lowercase.
3fill in blank
hard

Fix the error in the code to safely get the 'city' parameter or use 'Unknown' if not set.

PHP
<?php
$city = $_GET[[1]] ?? 'Unknown';
echo "City: $city";
?>
Drag options to blanks, or click blank then click option'
A"City"
Bcity
CCity
D"city"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted keys causing undefined index errors.
Using wrong case for parameter names.
4fill in blank
hard

Fill both blanks to create an associative array with key as parameter name and value from $_GET for 'user'.

PHP
<?php
$data = [[1] => $_GET[[2]]];
print_r($data);
?>
Drag options to blanks, or click blank then click option'
A"user"
B"email"
Cuser
Demail
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted keys causing errors.
Mixing parameter names between key and value.
5fill in blank
hard

Fill all three blanks to loop through $_GET and print each parameter and its value.

PHP
<?php
foreach ($_GET as [1] => [2]) {
    echo [3] . ': ' . [2] . "<br>";
}
?>
Drag options to blanks, or click blank then click option'
A$key
B$value
C$param
D$item
Attempts:
3 left
💡 Hint
Common Mistakes
Using the same variable for key and value.
Using undefined variables in echo.

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