0

いくつか質問があります。私はJoomlaで働いています。このphpコードを使用してreferer.txtへのリファラーを記述しようとしていますが、joomlaのどこにも「referer.txt」が見つかりません。

<?php 
$referer = get_en("HTTP_REFERER");
if($referer){
$fp=fopen("referer.txt","a")||die("Could not open referer file!");
fwrite($fp,$referer);
fclose($fp);
}
?>

ただし、ステージングのページでは、firebugでエラーはスローされません。

上司は特定のページへのリファラーの記録を望んでいます(私はこの特定のページをテストとして使用しています。これはターゲットページではありません)。

私の質問は次のとおりです。

  1. 上記のコードが失敗しない場合、一体どこにreferer.txtがjoomlaシステムにある可能性がありますか?

  2. これを行う別の方法はありますか?たとえば、このページhttp://www.webvanta.com/post/248869-using-referrer-urls-to-better-understandは、javascriptを使用してリファラーを追跡するCookieを構築することを提案し、このサイトhttp://webdesign.about .com / cs / loganalysistools / a / aaloganalysis.htmは、Webログとログ分析ツールの使用を提案しています。

これを行うための最良の方法は何ですか?

4

1 に答える 1

2

最初の行$referer = get_en("HTTP_REFERER");はを使用してget_en()いますが、組み込み関数はgetenv()です。

現在のユーザーのリファラーにアクセスする別の方法は、$_SERVER['HTTP_REFERRER'];パラメーターを使用することです。ただし、ドキュメントによると、これはを使用する場合と同じgetenv()です。

リファラーを追跡するサーバー側の方法は、Apacheによって作成されたaccess_logファイルを解析することです。これらのログには、リクエストの日付、リクエストの種類(GET、POSTなど)、ファイル、クエリ文字列、IP、UserAgent、およびその他の多くの有益な部分が表示されます。

ファイルの保存場所についてはreferer.txt、絶対パスを使用して開く必要があります。を使用する$fp=fopen($_SERVER['DOCUMENT_ROOT'] . '/referer.txt', 'a');か、などのカスタムパスを設定できます$fp=fopen("/tmp/referer.txt", 'a');

于 2012-08-01T18:28:56.460 に答える