使用php获取请求域

时间:2015-10-15 06:35:09

标签: php curl

我使用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";
    }

1 个答案:

答案 0 :(得分:2)

我会建议另一个命令。而不是HTTP_REFERER尝试HTTP_HOSTSERVER_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

查看以下主题herehere