我使用HTTP_REFERER.
获取域名时遇到问题
条件是这样的:
http://www.example.com向我的服务器发送一个卷发帖子。事情是,example.com不会在curl_setopt(CURLOPT_REFERER)
中发送他们的网址。那么我的服务器端是否可以获得他们的域名?
非常感谢帮助我
到目前为止我的代码:
在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";
}
答案 0 :(得分:2)
我会建议另一个命令。而不是HTTP_REFERER
尝试HTTP_HOST
或SERVER_NAME
。
示例:
$domain = parse_url($_SERVER['HTTP_HOST']);
$domain = parse_url($_SERVER['SERVER_NAME']);
HTTP_REFERER
- 将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER
修改为功能。简而言之,它无法真正被信任。