php Undefined index: error

Dear Experts,

I assign the value empty. And create an if statement it works, but it give an error.

Error message is : Notice: Undefined index: ....


if ($_POST["durum"]) {  // it gives error here..
$durum = test_input($_POST["durum"]);

Open in new window

Who is Participating?
Julian HansenCommented:
Further to Ryan's answer,

You can't test for a variable that does not exist using an if.

You need to check if it is available or non empty - Ryan suggested isset()
the other option

Which one you use depends on your requirements
isset() will determine if the variable (array in this case) has a value - even if the value is FALSY (null, blank, false, 0)
empty() will determine if the variable has a value AND is truthy

A general rule is NEVER access $_POST variables directly.
1. They might not exist
2. They might contain malicious data

Always check for existence and then sanitize them appropriately before using them.

Here is a techique I use by default in all my scripts

$durum = isset($_POST['durum']) ? $_POST['durum'] : false;
if (! $durum || !isValid($durum)) {
   // handle invalid input here
// isValid will vary depending on what data you are looking for string, phone number, email etc
// if you get here you know the value is present and valid so now you can use it

Open in new window

Ryan ChongCommented:
try use isset function?



if (isset($_POST["durum"])) {  // it gives error here..
	$durum = test_input($_POST["durum"]);

Open in new window
BRMarketingAuthor Commented:
Thank you both
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.