【发布时间】:2017-05-24 12:11:13
【问题描述】:
我的场景是这样的:第一个站点通过 php curl 将带有各种参数的请求作为查询字符串发送到第二个站点。第二个站点类方法通过对传入参数的各种比较来处理请求,并通过这种方式将一些数据与引用站点(第一个站点)名称和 IP 地址一起存储在表中 -
$url = parse_url($_SERVER['HTTP_REFERER']);
$ref_site = $url['host'];
$ref_site_ip = gethostbyname($ref_site);
但是当我测试它时它在我的生产服务器中不起作用,$ref_site 和 $ref_site_ip 变量没有价值,这意味着 $_SERVER['HTTP_REFERER'] 由于多种原因无法正常工作,可能是因为第一个站点的 curl 请求....
以下是否正常工作?
$_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_HOST']
$_SERVER['REMOTE_ADDR'] 看起来我看到了一个 IP 地址,我没有完全验证它是引用站点(第一个站点)IP 还是第二个站点 IP,如果可能的话,我会尽快更新它。
现在我可以通过哪些其他方式获得引用站点名称和 IP?
仅供参考,我无法控制第一个站点代码,因为这些站点将属于不同的用户,并且这些站点代码使用 curl 发送请求,我绝对知道这些是我已知的 cms 站点。
【问题讨论】:
-
我没有完全明白你需要什么..但我认为第一个站点应该将
$_SERVER['http_referer']发送到第二个站点,这样你就可以得到 th -
我描述得很好,可能是第一个没有发送带有 curl 请求的 $_SERVER['http_referer'] 的站点,所以它是空的。现在没有办法获得至少一个推荐人 IP 吗?
-
可能使用 php-fpm 进行开发(称为
$_SERVER['http_referer']),并在 prod 服务器上使用 apache mod_php(称为apache_request_headers()['http_referer']) -
没有相同的结果,remote_addr 显示了一个 IP 地址,我试图将其转换为站点名称,但所有方式都失败了。所以:(
-
当 http_referer 服务器变量不工作时,没有办法捕获引用站点名称和 ip?
标签: php curl joomla3.0 http-referer