php - 我需要安装什么模块才能在 $_SERVER 数组中查看我的 header 变量?

标签 php apache variables server

我有一个服务器,其中有一个 php 文件,我将一些 header 变量传递到该文件并在 PHP 文件中读取它,如下所示...

 $_SERVER["HTTP_API_KEY"]

如果我在我的 header 数据中传递 API_KEY,我将在服务器中获得作为 $_SERVER["HTTP_API_KEY"] 的值。现在我的代码已移至新服务器,并且在我的 $_SERVER 数组中看不到 $_SERVER["HTTP_API_KEY"]! 它可能是 PHP 模块或 Apache 模块,我可能需要使用我相信的服务器进行配置。我试图找到解决方案,但不幸的是还没有找到。

如果有人知道它到底是什么,请告诉我......

最佳答案

我会给getallheaders试试功能吧!

如果您想将 key 添加回 $_SERVER 数组,只需将其添加到文件顶部即可。

<?php

if(!isset($_SERVER['HTTP_API_KEY']) && isset(getallheaders()['API_KEY']))
    $_SERVER['HTTP_API_KEY'] = getallheaders()['API_KEY'];

?>

获取第一个可用的 key 。

<?php

if(isset($_SERVER['HTTP_API_KEY']))
    $key = $_SERVER['HTTP_API_KEY'];
elseif(isset(getallheaders()['API_KEY']))
    $key = getallheaders()['API_KEY'];
else
    die('Key not found.');

?>

适用于包含来自 Get 和 Post 请求的键。

<?php

if(isset($_SERVER['HTTP_API_KEY']))
    $key = $_SERVER['HTTP_API_KEY'];
elseif(isset(getallheaders()['API_KEY']))
    $key = getallheaders()['API_KEY'];
elseif($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['API_KEY']))
    $key = $_POST['API_KEY'];
elseif(($_SERVER['REQUEST_METHOD'] === 'GET' || $_SERVER['REQUEST_METHOD'] === 'POST') && isset($_GET['API_KEY']))
    $key = $_GET['API_KEY'];
else
    die('Key not found.');

if($key !== '12345')
    die('Invalid key.');

echo 'Hello world!';

?>

关于php - 我需要安装什么模块才能在 $_SERVER 数组中查看我的 header 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37247116/

相关文章:

variables - METAPOST:在标签中使用循环变量

php - 使用短语搜索mysql数据库

php - PHP 中的 2 路字符串加密 - 其中哪个更安全?

php - URL 参数的最佳实践

php - 如何使用 php 从 json 到 mysql 只插入数组中尽可能多的项目

apache - RewriteRule - 插入符号 ^ - 匹配

Android 模拟器未连接本地主机 Apache

php - 如果变量为 null 则显示另一个变量

Java 1.6 和 URIBuilder

javascript - 如何从 html 文本框中获取输入并将其分配给 javascript 变量?