向Heroku PHP API发送请求时未找到请求头

向Heroku PHP API发送请求时未找到请求头,php,api,heroku,httprequest,Php,Api,Heroku,Httprequest,第一次Heroku用户 Myphpapi为iOS应用程序提供了身份验证方法: public function authenticateAppKey() { if (!isset($_SERVER['HTTP_APP_KEY'])) { error('App Key Not Supplied'); exit; } else if ($_SERVER['HTTP_APP_KEY'] != self::$api_key) { error(

第一次Heroku用户

My
php
api为
iOS
应用程序提供了身份验证方法:

public function authenticateAppKey() {
    if (!isset($_SERVER['HTTP_APP_KEY'])) {
        error('App Key Not Supplied');
        exit;
    } else if ($_SERVER['HTTP_APP_KEY'] != self::$api_key) {
        error('App Key Incorrect');
        exit;
    }
}
它总是返回未提供的
应用程序密钥

这一直在起作用,直到我切换到Heroku,不知道我是否错过了Heroku设置期间的设置

以下是我的构建包:

我还在服务器上安装了

部署日志(如果有帮助):

-----> Using set buildpack heroku/php
-----> PHP app detected
-----> Bootstrapping...
-----> Installing platform packages...
       NOTICE: No runtime required in composer.lock; using PHP ^5.5.17
       - apache (2.4.18)
       - nginx (1.8.1)
       - php (5.6.19)
-----> Installing dependencies...
       Composer version 1.0.0-beta1 2016-03-03 15:15:10
-----> Preparing runtime environment...
       NOTICE: No Procfile, using 'web: vendor/bin/heroku-php-apache2'.
-----> Checking for additional extensions to install...
-----> Discovering process types
       Procfile declares types -> web
-----> Compressing...
       Done: 13M
-----> Launching...
       Released v43
       https://<address>.herokuapp.com/ deployed to Heroku
----->使用set buildpack heroku/php
----->检测到PHP应用程序
----->自举。。。
----->正在安装平台软件包。。。
注意:composer.lock中不需要运行时;使用PHP^5.5.17
-apache(2.4.18)
-nginx(1.8.1)
-php(5.6.19)
----->正在安装依赖项。。。
作曲家版本1.0.0-beta1 2016-03-03 15:15:10
----->正在准备运行时环境。。。
注意:没有Procfile,使用“web:vendor/bin/heroku-php-apache2”。
----->正在检查要安装的其他扩展。。。
----->发现进程类型
Procfile声明类型->web
----->压缩。。。
完成:13米
----->发射。。。
发布v43
https://.herokuapp.com/ 部署到Heroku

确定找到问题并修复

看起来请求头变量中不应该有下划线。自从搬到Heroku后,这一点才得到强调


因此,在我的情况下,
APP_KEY
对代码不可见,更改为
APPKEY
,所有问题都得到了解决。

确定找到了问题并得到了解决

看起来请求头变量中不应该有下划线。自从搬到Heroku后,这一点才得到强调


因此,在我的情况下,
APP_KEY
对代码不可见,更改为
APPKEY
,所有内容都已修复。

下划线在HTTP头名称中无效,因此Heroku的行为正常。您可能还误解了数组键中的下划线-如果您发送一个标题“App Key”,PHP会将其转换为“HTTP_App_Key”。我已经在另一台服务器上使用App_Key很长时间了,直到Heroku对您有好处之前,我没有遇到任何问题。根据HTTP规范,这仍然是不合法的,其他web服务器(如Nginx)也会删除名称中带有下划线的标题。因为它现在已修复,可以让其他人在将来找到正确的信息,所以我给了你一张赞成票:)为我工作。:)但heroku很奇怪。下划线在HTTP头名称中无效,所以heroku的行为是正确的。您可能还误解了数组键中的下划线-如果您发送一个标题“App Key”,PHP会将其转换为“HTTP_App_Key”。我已经在另一台服务器上使用App_Key很长时间了,直到Heroku对您有好处之前,我没有遇到任何问题。根据HTTP规范,这仍然是不合法的,其他web服务器(如Nginx)也会删除名称中带有下划线的标题。因为它现在已修复,可以让其他人在将来找到正确的信息,所以我给了你一张赞成票:)为我工作。:)但是希罗库很奇怪。