我有一个服务器,我有一个php文件,我传递一些头变量,并在php文件中读取如下…

 $_SERVER["HTTP_API_KEY"]

如果在头数据中传递API_KEY,则在服务器中得到的值为$_SERVER["HTTP_API_KEY"]。现在我的代码被移到了新的服务器上,在我的$_SERVER["HTTP_API_KEY"]数组中看不到$_SERVER
它可以是php模块,也可以是apache模块,我可能需要用我相信的服务器进行配置。我试图找到解决办法,但不幸的是还没有找到。
如果有人知道是什么…

最佳答案

我想试试getallheaders函数!
如果要将密钥添加回$u服务器阵列,只需将其添加到文件顶部。

<?php

if(!isset($_SERVER['HTTP_API_KEY']) && isset(getallheaders()['API_KEY']))
    $_SERVER['HTTP_API_KEY'] = getallheaders()['API_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!';

?>

10-08 06:54
查看更多