getallheaders function is undefined (sites using nginx)
Closed this issue · 1 comments
skbly7 commented
Title
getallheaders() function is not defined
Effected Users
The WordPress users having their site running on nginx + php-fpm
instead of Apache
.
Description
- getallheaders() isn't available when Nginx + php-fpm setup exist.
- No check on Amber code if the function exist or not
- Instead define function from our side to be 100% sure.
if (!function_exists('getallheaders')) {
function getallheaders() {
$headers = [];
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
Place used
function validate_cache_referrer() in amber.php
Related links
- http://php.net/manual/en/function.getallheaders.php#84262
- https://wordpress.org/support/topic/getallheaders-undefined
- http://stackoverflow.com/questions/6014975/php-getallheaders-alternative
Reference commit
22e0a39#diff-48a2bdcac7ee505e0aabaf11f1d698d8R794
Update:
Faced on
PHP Version 5.5.9-1ubuntu4.16
nginx version: nginx/1.8.1
jlicht commented
Merged pull request