So, I have some PHP code that looks a bit like this:
<body>
The ID is
<?php
echo $_GET["id"] . "!";
?>
</body>
Now, when I pass an ID like http://localhost/myphp.php?id=26
it works alright, but if there is no ID like just http://localhost/myphp.php
then it outputs:
The ID is
Notice: Undefined index: id in C:\xampp\htdocs\myphp.php on line 9
!
I have searched for a way to fix this but I cannot find any way to check if a URL variable exists. I know there must be a way though.
This question is related to
php
html
urlvariables
if (isset($_GET["id"])){
//do stuff
}
Please try it:
if(isset($_GET['id']) && !empty($_GET['id'])){
echo $_GET["id"];
}
Use and empty()
whit negation (for test if not empty)
if(!empty($_GET['id'])) {
// if get id is not empty
}
You can use the array_key_exists()
built-in function:
if (array_key_exists('id', $_GET)) {
echo $_GET['id'];
}
or the isset()
built-in function:
if (isset($_GET['id'])) {
echo $_GET['id'];
}
Normally it is quite good to do:
echo isset($_GET['id']) ? $_GET['id'] : 'wtf';
This is so when assigning the var to other variables you can do defaults all in one breath instead of constantly using if
statements to just give them a default value if they are not set.
Source: Stackoverflow.com