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: ....

$durum="";

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

Open in new window

LVL 1
BRMarketingAsked:
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 http://php.net/manual/en/function.empty.php

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
test_input($durum)

Open in new window

1
 
Ryan ChongCommented:
try use isset function?

so

$durum="";

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

Open in new window


http://php.net/manual/en/function.isset.php
1
 
BRMarketingAuthor Commented:
Thank you both
0
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.