I am trying to validate post data in PHP(No Framework) using the method below. But I am wondering if there is a better way.
- I want to validate data types (String, Integer, Boolean, etc.)
- I want to check if required values are available and similarly handle optional values.
I made functions such as these:
//Cleansing Data
function clean_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = mysqli_real_escape_string(conn(), $data);
return $data;
}
//Checking Optional Values
function nullable_var($post_var)
{
if (isset($post_var) && clean_input($post_var) !== '') {
return clean_input($post_var);
} else {
return "NULL";
}
}
//Checking required Values
function required_var($post_var)
{
if (clean_input($post_var) !== '') {
return clean_input($post_var);
} else {
exit('Required Data is missing');
}
}
//Checking Data Type(s)
//Similar functions are available for other types
function int($val)
{
if ($val == "NULL") {
return $val;
} else {
$val = filter_var($val, FILTER_VALIDATE_INT);
if ($val === false) {
exit('Invalid Integer');
}
return $val;
}
}
I am using these while handling post data:
Example: $int_required_value = int(required_var($_POST['int_required_value']));