![](/img/trans.png)
[英]query string in php url which fetches values from files in directories
[英]PHP fetches URL without query
我试图从使用jQuery和PHP(作为代理)的服务中获取。
这是我的PHP,用于获取JSON。
<?php
if (!isset($_GET['url'])) die();
$url = urldecode($_GET['url']);
$url = 'http://' . str_replace('http://', '', $url);
echo file_get_contents($url);
?>
使用JS来处理数据(抱歉,必须删除密钥):
var api ='proxy.php?url=http://api.buycraft.net/v3?secret=MY-SECRET-KEY&action=payments';
$.getJSON(api, function(data){
$.each(data, function(i, donor){
console.log(donor);
});
});
因此,转到proxy.php?url=http://api.buycraft.net/v3?secret=MY-SECRET-KEY&action=payments
仅返回以下内容:
{"code":100,"payload":[]}
但是,如果我直接访问JSON,则可以看到所需的数据
{
"code": 0,
"payload": [
{
"time": 1349661897,
"packages": [
"49381"
],
"ign": "notch",
"price": "15.99",
"currency": "USD"
}
例如。
而且我知道这是因为php删除了?action=payments
查询。 即使我使用&
代替&
。 那么有没有一种方法可以防止PHP从URL中删除查询?
将API密钥保留在您的php中,出于明显的安全原因,请勿将其公开给javascript的客户端。 您也可以将整个URL( proxy.php
)存储在php配置中。
还应实现使用CURL检索数据。 允许进行一些错误处理,以便在API不可用时可以将信息发送回客户端
尝试从后端PHP脚本中删除它:
$url = urldecode($_GET['url']);
PHP将自动为您执行该操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.