我有一个服务器,我有一个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!';
?>