後で、いくつかの関連情報を確認し、window.location.hrefまたはIEでIEでHTTP_REFERERを取得することは不可能であることがわかりました。私は本当にブラウザを理解していません。多くのブラウザは非常にうまく実行されますが、それらをサポートしていません。最終的には、方法はありません。ソースHTTP_REFERERメソッドを偽造するか、JSを使用して鍛造することしかできません。
IEが認識できるHTTP_REFERERの提出は、クリックまたはフォームフォームで送信されたリクエストによってトリガーされるイベントです。以下は、オンライン情報に基づいて要約された方法です。
<script> function referurl(url){var isie =(document.all)?true:fals; if(isie){var linka = document.createelement( 'a'); linka.href = url; document.body.appendchild(linka); linka.click();} else windoc.location = url;} var url =” // www.vevb.com”; referurl(url); </script>このメソッドは最初にdocument.allを使用して、現在のブラウザがIEであるかどうかを判断します。その場合、リンクを生成してから、OnClickイベントを自動的に実行します。そうでない場合は、JSを使用してジャンプします。このようにして、ページを処理するときにhttp_refererを取得できます
この方法は、IE、Firefox、Safari、Chromeでテストされています
2。PHPはカールを使用してIPおよびOrigin HTTPリファラーを偽造します
referer.php
<?php $ ch = curl_init(); curl_setopt($ ch、curlopt_url、 "http://mydomain.com/ip.php"); curl_setopt(curlopt_httpheader、array( 'x-forwarded-for:8.8.8.8'、 'client-ip:8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8. // IPCURL_SETOPT($ ch、curlopt_referer、 "//www.vevb.com/"); // ORIGIN CURL_SETOPT($ ch、curlopt_header、1); $ out = curl_exec($ ch); curl_close($ ch); echo $ out;
IP.php
<?phpfunction getclientip(){if(!empty($ _ server ["http_client_ip"]))$ ip = $ _server ["http_client_ip"]; else(!empty($ _ server ["http_x_forwarded_for"])$ ip = $ _ furded_ "fforded_ (!empty($ _ server ["remote_addr"]))$ ip = $ _server ["remote_addr"]; els $ ip = "err"; return $ ip;} echo "ip:"。 getClientIP()。 "<br>"; echo "参照者:"。 $ _SERVER ["HTTP_REFERER"];