2013-05-04 25 views
34

私は顧客が私に電子メールを送ることができるページ(索引のみ)を持っています、そして、私は訪問者が来ているどのウェブサイトから見たいですか?PHP:参照元URLを取得するには?

PHPでReferrer URLを取得するにはどうすればよいですか?私は $_SERVER['HTTP_REFERER']で試しましたが、それはいつも空です。これどうやってするの?ありがとうございました!ここで

array(31) { 
    ["DOCUMENT_ROOT"]=> 
    string(33) "/home/anything/public_html/design" 
    ["GATEWAY_INTERFACE"]=> 
    string(7) "CGI/1.1" 
    ["HTTP_ACCEPT"]=> 
    string(129) "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1" 
    ["HTTP_ACCEPT_ENCODING"]=> 
    string(13) "gzip, deflate" 
    ["HTTP_ACCEPT_LANGUAGE"]=> 
    string(14) "en-US,en;q=0.9" 
    ["HTTP_CACHE_CONTROL"]=> 
    string(8) "no-cache" 
    ["HTTP_CONNECTION"]=> 
    string(10) "Keep-Alive" 
    ["HTTP_COOKIE"]=> 
    string(189) "__utma=76630272.1468291432.1367655794.1367669576.1367674157.3; __utmb=76630272.1.10.1367674157; __utmc=76630272; __utmz=76630272.1367655794.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" 
    ["HTTP_HOST"]=> 
    string(25) " ---- CENSORED ---- " 
    ["HTTP_USER_AGENT"]=> 
    string(57) "Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.15" 
    ["PATH"]=> 
    string(13) "/bin:/usr/bin" 
    ["QUERY_STRING"]=> 
    string(0) "" 
    ["REDIRECT_STATUS"]=> 
    string(3) "200" 
    ["REMOTE_ADDR"]=> 
    string(10) "5.15.68.79" 
    ["REMOTE_PORT"]=> 
    string(5) "57897" 
    ["REQUEST_METHOD"]=> 
    string(3) "GET" 
    ["REQUEST_URI"]=> 
    string(12) "/referer.php" 
    ["SCRIPT_FILENAME"]=> 
    string(45) "/home/anything/public_html/design/referer.php" 
    ["SCRIPT_NAME"]=> 
    string(12) "/referer.php" 
    ["SERVER_ADDR"]=> 
    string(13) " ---- CENSORED ---- " 
    ["SERVER_ADMIN"]=> 
    string(35) " ---- CENSORED ---- " 
    ["SERVER_NAME"]=> 
    string(25) " ---- CENSORED ---- " 
    ["SERVER_PORT"]=> 
    string(2) "80" 
    ["SERVER_PROTOCOL"]=> 
    string(8) "HTTP/1.1" 
    ["SERVER_SIGNATURE"]=> 
    string(189) " 
Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at ---- CENSORED ---- Port 80 

" 
    ["SERVER_SOFTWARE"]=> 
    string(125) "Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635" 
    ["UNIQUE_ID"]=> 
    string(24) "UYUNcUPeiDsAABkR2eYAAAAj" 
    ["PHP_SELF"]=> 
    string(12) "/referer.php" 
    ["REQUEST_TIME"]=> 
    int(1367674225) 
    ["argv"]=> 
    array(0) { 
    } 
    ["argc"]=> 
    int(0) 
} 
+0

[$ \ _ SERVER \ ['HTTP \ _REFERER' \]を使用してそのユーザーがGoogleから来たことを確認するにはどうすればよいですか?](http://stackoverflow.com/questions/10613025/how-can-i -use-serverhttp-referer-to-find-that-user-came-from-google) –

答えて

99

$_SERVER['HTTP_REFERER']いずれかが存在する場合、あなたにリファラページのURLを提供します。ユーザーが手動でURLを入力してブックマークを使用するか、サイトに直接アクセスすると、http_refererは空になります。また、ユーザーがプログラムで(CURL)ページに投稿している場合、http_refererも設定する必要はありません。あなたはすべて_が欠けている、それはタイプミスですか?

+1

申し訳ありませんが、私は上に間違って書いています、私のスクリプト上で書かれているが、それは空です。 – sorinu26

+1

@ sorinu26:まだあなたのスクリプト '$ _ [' not '$ ['。 'var_dump($ _ SERVER);'を実行してみてください。あなたの質問に結果を投稿してください – OptimusCrime

+3

私は質問の説明を修正しました。 – sorinu26

5

アンダースコア( "----検閲----" 私が検閲されている)私の$_SERVERが含まれているものです。スペースではありません。

$_SERVER['HTTP_REFERER']

+1

申し訳ありませんが、上記のスクリプトを間違えて書いています。 – sorinu26

+1

そして、間違いなく直接参照されることはありません。参照先がありません。申し訳ありませんが、確かに尋ねる必要があります。 – bearfriend

+0

私は直接リンクしているウェブサイトから私のページにアクセスしようとしましたが、まだ空です。 – sorinu26

0

$_SERVER['HTTP_REFERER']変数が機能していない場合は、Google AnalyticsまたはAddThis Analyticsのいずれかを使用できます。

+1

アナリティクスが明らかに優れたソリューションになるはずです。明らかに、ここではサーバー変数を使用すると変なことがあります。さらに、http-refererは簡単に操作できます。 – OptimusCrime

関連する問題