此问题在此处已有答案:
Get callers (CURL) IP and SERVER_NAME - PHP(1个答案)
6个月前关闭。
我在使用HTTP_REFERER.
获取域名时遇到问题,情况是这样的:
http://www.example.com发送一个curl帖子到我的服务器。问题是,example.com不会在curl_setopt(CURLOPT_REFERER)
中发送他们的URL。所以我的服务器端可以获得他们的域名吗?
非常感谢你帮助我
我的代码到目前为止:
在abc.com端
$data = array('username' => $username ,
'email' => $email,
'phone' => $phone );
$string = http_build_query($data);
// For debugging purpose
// echo $string;
$ch = curl_init("http://localhost/test/str_pos.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
header("Location: str_pos.php");
字符串
在我的服务器端:
$domain = parse_url($_SERVER['HTTP_REFERER']);
if (isset($domain['host'])) {
echo $domain['host'];
}
else{
echo "No host found";
}
型
1条答案
按热度按时间ibps3vxo1#
我建议使用一个不同的命令,而不是
HTTP_REFERER
,尝试HTTP_HOST
或SERVER_NAME
。范例:
$domain = parse_url($_SERVER['HTTP_HOST']);
个$domain = parse_url($_SERVER['SERVER_NAME']);
个HTTP_REFERER
-将用户代理引用到当前页面的页面地址(如果有的话)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些用户代理提供修改HTTP_REFERER
的功能。简而言之,它不能真正被信任。来源http://php.net/manual/en/reserved.variables.server.php
查看以下线程here和here。