0

誰かがグーグルから私のウェブサイトに来た場合、どうすればphpで見つけることができますか?

<?php
  if (isset($_COOKIE['source'])) {
      $arr = explode("=",$_COOKIE['source']);
      $_SESSION['source'] = $arr[1];
      unset($_COOKIE['source']);
  }
?>

これが私がソースを取得する方法であり、私のサイトの前に訪問者がどこにいたかを知り、$_SESSION['source']="google"彼が私のページを見つけるためにGoogleで検索していたかどうかを設定したいと思います。

4

3 に答える 3

1

使用:$ _ SERVER ['HTTP_REFERER']

if(strpos($_SERVER['HTTP_REFERER'], 'google'))
echo 'comes from google';
于 2013-03-26T08:32:47.287 に答える
0

$_SERVER['HTTP_REFERER']を確認してみてください。このグローバル変数には、リファラーURLが含まれている必要があります。

于 2013-03-26T08:30:55.390 に答える
0

これが私がやる方法です。指定されたURLがある場合はそれを解析し、トップレベルドメインや第3レベル以下のドメインなどの不要な情報をすべて削除するため、セカンドレベルドメインのみが残ります(google)。

function isRequestFromGoogle() {
    if (!empty($_SERVER['HTTP_REFERER'])) {
        $host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
        if (!$host) {
            return false; // no host found
        }

        // remove the TLD, like .com, .de etc.
        $hostWithoutTld = mb_substr($_SERVER['HTTP_REFERER'], 0, mb_strrpos($_SERVER['HTTP_REFERER'], '.'));
        // get only the second level domain name
        // e.g. from news.google.de we already removed .de and now we remove news.
        $domainName = mb_substr($hostWithoutTld, mb_strrpos($hostWithoutTld, '.') + 1);

        if (mb_strtolower($domainName) == 'google') {
            return true;
        } else {
            return false;
        }
    }
}
于 2013-03-26T08:43:50.520 に答える