I\'m trying to write a script that when a user uploads a file and does not enter a name an error is returned. I\'ve tried using is_null, empty, and isset and they all do not
I wrote this php page that hopefully will be of help to you. If you run it, it shows the interaction of these particular types of variables with these functions (plus one I made for myself), and also it compares them with each other with the == operator: https://pastebin.com/whPFMams
FUNCTIONS COMPARISON
Variables
class obj{};
$n;
Array:
"a" => -1,
"b" => 0,
"c" => 0.0,
"d" => '',
"e" => ' ',
"f" => '0',
"g" => "\0",
"h" => true,
"i" => false,
"j" => null,
"k" => array(),
"l" => new obj(),
"m" => new stdClass(),
"n" => $n (undefined)
z = (undeclared)
My function
function isvalid($value,$strict=false){
if( !is_null($value) && value!==false && (!empty($value) || $value == 0) ){
if($strict)
{
if(is_bool($value) || is_array($value) || is_object($value))
{return false;}
else
{return true;}
}
else
{return true;}
}
else
{return false;}
}
Var_dump
-1,
"b" => 0,
"c" => 0.0,
"d" => '',
"e" => ' ',
"f" => '0',
"g" => "\0",
"h" => true,
"i" => false,
"j" => null,
"k" => array(),
"l" => new obj(),
"m" => new stdClass(),
"n" => $n
//"z"
];
echo var_dump($values)."\n z = "; echo var_dump($z)."\n";
?>
== and other
"; echo var_dump($values["a"]); echo "
: a = -1 ";
echo ""; echo var_dump($values["b"]); echo "
: b = 0 ";
echo ""; echo var_dump($values["c"]); echo "
: c = 0.0 ";
echo ""; echo var_dump($values["d"]); echo "
: d = '' ";
echo ""; echo var_dump($values["e"]); echo "
: e = ' ' ";
echo ""; echo var_dump($values["f"]); echo "
: f = '0' ";
echo ""; echo var_dump($values["g"]); echo "
: g = '/0' ";
echo ""; echo var_dump($values["h"]); echo "
: h = true ";
echo ""; echo var_dump($values["i"]); echo "
: i = false ";
echo ""; echo var_dump($values["j"]); echo "
: j = null ";
echo ""; echo var_dump($values["k"]); echo "
: k = empty array ";
echo ""; echo var_dump($values["l"]); echo "
: l = empty object (Notices with numbers) ";
echo ""; echo var_dump($values["m"]); echo "
: m = empty stdClass (Notices with numbers) ";
echo ""; echo var_dump($values["n"]); echo "
: n = undefined ";
echo ""; echo var_dump($z); echo "
: z = undeclared (Notices) ";
?>
$val){
echo '
'; echo var_dump($val); echo '
: '.$key.' ';
foreach ($values as $key2 => $val2){
echo ''; echo $val==$val2 ? var_dump($val==$val2) : /*var_dump($val==$val2).*/''; echo' ';
}
echo ''; echo $val==$z ? var_dump($val==$z) : /*var_dump($val==$z).*/''; echo' ';
echo ' ';
}
//z
echo '
'; echo var_dump($z); echo '
: z (Notices) ';
foreach ($values as $key2 => $val2){
echo ''; echo $z==$val2 ? var_dump($z==$val2) : /*var_dump($z==$val2).*/''; echo' ';
}
echo ''; echo $z==$z ? var_dump($z==$z) : /*var_dump($z==$z).*/''; echo' ';
echo ' ';
//!empty || ==0
echo '
!empty || ==0 ';
foreach ($values as $key => $val){
echo ''; echo !empty($val) || $val==0 ? var_dump(!empty($val) || $val==0) : /*var_dump(!empty($val) || $val==0.*/''; echo' ';
}
echo ''; echo !empty($z) || $z==0 ? var_dump(!empty($z) || $z==0) : /*var_dump(!empty($z) || $z==0).*/''; echo' ';
echo ' ';
//isvalid
echo '
isvalid() ';
foreach ($values as $key => $val){
echo ''; echo isvalid($val) ? var_dump(isvalid($val)) : /*var_dump(isvalid($val)).*/''; echo' ';
}
echo ''; echo isvalid($z) ? var_dump(isvalid($z)) : /*var_dump(isvalid($z)).*/''; echo' ';
echo ' ';
//isvalid strict
echo '
isvalid(strict) ';
foreach ($values as $key => $val){
echo ''; echo isvalid($val,true) ? var_dump(isvalid($val,true)) : /*var_dump(isvalid($val,true)).*/''; echo' ';
}
echo ''; echo isvalid($z,true) ? var_dump(isvalid($z,true)) : /*var_dump(isvalid($z,true)).*/''; echo' ';
echo ' ';
//!is_null
echo '
!is_null ';
foreach ($values as $key => $val){
echo ''; echo !is_null($val) ? var_dump(!is_null($val)) : /*var_dump(!is_null($val)).*/''; echo' ';
}
echo ''; echo !is_null($z) ? var_dump(!is_null($z)) : /*var_dump(!is_null($z)).*/''; echo' ';
echo ' ';
//isset
echo '
isset (No Notices) ';
foreach ($values as $key => $val){
echo ''; echo isset($val) ? var_dump(isset($val)) : /*var_dump(isset($val)).*/''; echo' ';
}
echo ''; echo isset($z) ? var_dump(isset($z)) : /*var_dump(isset($z)).*/''; echo' ';
echo ' ';
//!empty
echo '
!empty (No Notices) ';
foreach ($values as $key => $val){
echo ''; echo !empty($val) ? var_dump(!empty($val)) : /*var_dump(!empty($val)).*/''; echo' ';
}
echo ''; echo !empty($z) ? var_dump(!empty($z)) : /*var_dump(!empty($z)).*/''; echo' ';
echo ' ';
// if
echo '
if ';
foreach ($values as $key => $val){
echo ''; echo $val ? var_dump(true) : /*var_dump(false).*/''; echo' ';
}
echo ''; echo $z ? var_dump(true) : /*var_dump(false).*/''; echo' ';
echo ' ';
?>
functions
"; echo var_dump($values["a"]); echo "
: a = -1 ";
echo ""; echo var_dump($values["b"]); echo "
: b = 0 ";
echo ""; echo var_dump($values["c"]); echo "
: c = 0.0 ";
echo ""; echo var_dump($values["d"]); echo "
: d = '' ";
echo ""; echo var_dump($values["e"]); echo "
: e = ' ' ";
echo ""; echo var_dump($values["f"]); echo "
: f = '0' ";
echo ""; echo var_dump($values["g"]); echo "
: g = '/0' ";
echo ""; echo var_dump($values["h"]); echo "
: h = true ";
echo ""; echo var_dump($values["i"]); echo "
: i = false ";
echo ""; echo var_dump($values["j"]); echo "
: j = null ";
echo ""; echo var_dump($values["k"]); echo "
: k = empty array ";
echo ""; echo var_dump($values["l"]); echo "
: l = empty object (Notices with numbers) ";
echo ""; echo var_dump($values["m"]); echo "
: m = empty stdClass (Notices with numbers) ";
echo ""; echo var_dump($values["n"]); echo "
: n = undefined ";
echo ""; echo var_dump($z); echo "
: z = undeclared (Notices) ";
?>
(Notices) : This line is full of Notices.
(Notices with numbers) : This line has Notices about number types interactions.
(No Notices) : This line has absolutely no Notices.