Web developers often need to check server environment details to debug or customize website behavior based on server or client information.
💼 Career
Understanding $_SERVER helps in backend web development, troubleshooting server issues, and writing dynamic PHP applications that respond to request details.
Progress0 / 4 steps
1
Create the initial $_SERVER keys list
Create a variable called keys_to_show and set it to an array with these exact strings: 'SERVER_NAME', 'SERVER_SOFTWARE', 'REQUEST_METHOD', 'SCRIPT_NAME', 'HTTP_USER_AGENT'.
PHP
Hint
Use square brackets [] to create an array with the exact keys listed.
2
Initialize the server_info array
Create an empty associative array called server_info to hold the selected $_SERVER information.
PHP
Hint
Use = [] to create an empty array.
3
Fill server_info with selected $_SERVER data
Use a foreach loop with variable key to iterate over keys_to_show. Inside the loop, set server_info[key] to the value from $_SERVER[key] if it exists, or to the string 'Not set' if it does not.
PHP
Hint
Use the null coalescing operator ?? to provide a default value if the $_SERVER key is missing.
4
Print the server_info contents
Use a foreach loop with variables key and value to iterate over server_info. Inside the loop, print each key and value in the format: key: value followed by a newline.
PHP
Hint
Use echo to print each key and value with a colon and newline.
Practice
(1/5)
1. What type of data does the PHP $_SERVER superglobal array hold?
easy
A. User input from forms
B. Information about headers, paths, and script locations
C. Database connection details
D. Session variables
Solution
Step 1: Understand what $_SERVER contains
$_SERVER holds server and execution environment information like headers and script paths.
Step 2: Compare with other options
User input is in $_POST or $_GET, database details are not stored here, and session variables are in $_SESSION.
Final Answer:
Information about headers, paths, and script locations -> Option B
Quick Check:
$_SERVER = server info [OK]
Hint: Remember: $_SERVER = server and request info [OK]
Common Mistakes:
Confusing $_SERVER with $_POST or $_GET
Thinking $_SERVER holds user session data
Assuming $_SERVER contains database info
2. Which of the following is the correct way to get the current script's filename using $_SERVER?
easy
A. $_SERVER['SCRIPT_NAME']
B. $_SERVER['USER_AGENT']
C. $_SERVER['REMOTE_ADDR']
D. $_SERVER['HTTP_HOST']
Solution
Step 1: Identify the key for current script filename
$_SERVER['SCRIPT_NAME'] returns the path of the current script.
Step 2: Understand other keys
USER_AGENT is client browser info, REMOTE_ADDR is client IP, and HTTP_HOST is the host name.
Final Answer:
$_SERVER['SCRIPT_NAME'] -> Option A
Quick Check:
Script filename = $_SERVER['SCRIPT_NAME'] [OK]
Hint: SCRIPT_NAME gives current script path [OK]
Common Mistakes:
Using REMOTE_ADDR for filename
Confusing HTTP_HOST with script name
Trying USER_AGENT for script info
3. What will the following PHP code output if the visitor's IP address is 192.168.1.10?
echo $_SERVER['REMOTE_ADDR'];
medium
A. 192.168.1.10
B. The server's IP address
C. The visitor's browser name
D. An empty string
Solution
Step 1: Understand what REMOTE_ADDR holds
$_SERVER['REMOTE_ADDR'] contains the IP address of the client visiting the page.
Step 2: Match with given IP
The visitor's IP is 192.168.1.10, so that is what will be printed.
Final Answer:
192.168.1.10 -> Option A
Quick Check:
REMOTE_ADDR = visitor IP [OK]
Hint: REMOTE_ADDR shows visitor IP address [OK]
Common Mistakes:
Thinking REMOTE_ADDR is server IP
Confusing REMOTE_ADDR with HTTP_USER_AGENT
Expecting browser name instead of IP
4. Identify the error in this PHP code snippet that tries to print the visitor's browser info:
echo $_SERVER[HTTP_USER_AGENT];
medium
A. $_SERVER cannot be echoed directly
B. Using wrong key name
C. Missing quotes around the array key
D. HTTP_USER_AGENT is not available in $_SERVER
Solution
Step 1: Check array key syntax
Array keys must be strings in quotes. Here, HTTP_USER_AGENT is missing quotes.
Step 2: Confirm key existence
HTTP_USER_AGENT is a valid key in $_SERVER, so the key name is correct.
Final Answer:
Missing quotes around the array key -> Option C
Quick Check:
Array keys need quotes [OK]
Hint: Always quote $_SERVER keys like 'HTTP_USER_AGENT' [OK]
Common Mistakes:
Forgetting quotes around keys
Assuming key name is wrong
Trying to echo whole $_SERVER array directly
5. You want to create a PHP script that shows the visitor's IP address and the current script's filename. Which code snippet correctly does this?