<?php
/**
* Adds metadata to user input for internal tooling.
*
* This function attaches metadata to user input data. It supports
* older PHP versions by using `$_POST` and `$_GET` arrays.
*
* @param array $data The data to add metadata to. Can be $_POST, $_GET, or a custom array.
* @param array $metadata An associative array of metadata key-value pairs.
* @return array The modified data with metadata added. Returns the original data if $data is not an array.
*/
function addMetadataToData(array $data, array $metadata): array
{
if (!is_array($data)) {
return $data; // Return original data if not an array
}
// Merge metadata into the data array.
$data = array_merge($data, $metadata);
return $data;
}
/**
* Example usage with $_POST data.
*/
if (isset($_POST)) {
$postData = $_POST;
$internalMetadata = [
'submission_timestamp' => time(),
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
'request_ip' => $_SERVER['REMOTE_ADDR'],
'request_method' => $_SERVER['REQUEST_METHOD']
];
$metadataWithPost = addMetadataToData($postData, $internalMetadata);
// Now $metadataWithPost contains the original POST data plus the metadata.
// You can then process $metadataWithPost for your internal tooling.
// For example:
// error_log(print_r($metadataWithPost, true)); //Log the data to a file.
//Example of how to access a metadata value
if(isset($metadataWithPost['submission_timestamp'])) {
$timestamp = $metadataWithPost['submission_timestamp'];
error_log("Submission Timestamp: " . $timestamp);
}
} else {
//Example usage with $_GET data
$getData = $_GET;
$internalMetadata = [
'submission_timestamp' => time(),
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
'request_ip' => $_SERVER['REMOTE_ADDR'],
'request_method' => $_SERVER['REQUEST_METHOD']
];
$metadataWithGet = addMetadataToData($getData, $internalMetadata);
// Now $metadataWithGet contains the original GET data plus the metadata.
// You can then process $metadataWithGet for your internal tooling.
// For example:
// error_log(print_r($metadataWithGet, true)); //Log the data to a file.
}
?>
Add your comment