服务器安全限制是否会导致allow_url_fopen& allow_url_include

时间:2017-04-05 13:38:58

标签: php security google-maps-api-3

我在Apache Web Host和我的开发人员之间“陷入困境” - 寻求指导。我不是一个称职的开发人员 - 所以请帮助我解决问题。

我有一个页面通过API V3.27执行以下两项操作之一: 1.将Lat,Lng发送到Google地图并显示街景视图 2.向Google地图发送地址并显示街景+保存Lat,Lng,Pitch等以备将来使用。

在我的网站主机将我的网站移动到新服务器之前一切都很好。现在任务2失败并出现以下错误:

PHP警告:file_get_contents():http://在服务器配置中通过第8行/home/(domain)/public_html/functions.php中的allow_url_fopen = 0禁用包装器

file_get_contents(http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Pkwy,+Mountain+View,+CA+94043&sensor=false):无法打开流:在第8行的/home/(domain)/public_html/functions.php中找不到合适的包装器

我的开发者已尝试启用allow_url_fopen&来自cpanel的allow_url_include没有成功。

以上是否表明开发人员需要进行一些代码更改,或者是与我的Web Host告诉我的以下安全限制之一相关的问题在我的服务器上是否存在(我无法让他们告诉我是否同样的限制适用于旧服务器。)

“全局禁用以下PHP函数” exec,passthru,system,popen,show_source,proc_open,shell_exec,eval,ini_set

如果上述任何限制导致Google Maps API出现问题,那么网络托管服务商有这样的限制是常见还是不常见。

=== 如果问题实际上是由于我的服务器的限制,我将不得不找到一个新的网络主机(很多工作转移网站和SSL,但如果问题是由于页面的编码方式,那么我需要去回到我的开发人员那里进行代码更改。

欢迎澄清任何指示或问题。

1 个答案:

答案 0 :(得分:1)

您可以随时使用curl并使用:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://maps.google.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%2C%20Mountain%20View%2C%20CA%2094043&sensor=false");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else {
    // use your $result response here what Google returns
    echo $result;
}

curl_close ($ch); // curl_errno must be before curl_close
相关问题