表題の件について教えて下さい。
まず、概要を申しますと、販売サイトにおいて
コンバージョン(注文メール)した際に、
1.どこから来たのか(リスティング・検索エンジン・他サイトからのリンク等)
2.注文した金額
3.その他ユーザー変数
を記録したく、自作アクセス解析を作ろうと考えております。
方法としてはjavascriptとPHPを使用してユーザー変数やアクセス履歴を
データベースに格納する事を考えております。
ここで試した方法なのですが、
まず、HTMLファイル内(index.htmlとします)には下記記述を書きます。
<script type="text/javascript" src="test.php"></script>
このページにアクセスが合った場合、test.phpが実行されますが
動きとしては$_SERVER["~"]にて取得できるサーバー環境変数を
MySQLのDBに格納するようにしております。
しかしながら、test.php内にてリファラ値が格納された
$_SERVER["HTTP_REFERER"]を参照すると、
本来であれば、リンク元のURLが拾えるはずですが
なぜかtest.phpの実行元であるHTMLファイルのパス(index.html)
を拾ってしまいます。
またどこからindex.htmlにリンクしても、やはりindex.htmlを
拾ってしまいます。
恐らく、$_SERVER["HTTP_REFERER"]にリファラ値が記録される
タイミングの問題だと考えておりますが、
例えばここで、index.htmlで読み込むプログラムをPHPではなく
javascript(.jsファイル)を用いて、
リファラ値(document.referer)を拾うと、正常にリンク元の値が拾えました。
scriptタグにて読み込むプログラムにおいて
PHP・javascriptでは取得できる情報に差があるのでしょうか?
また、目的の事を達成する場合は具体的にどのような手法が
望ましいでしょうか。
No.1ベストアンサー
- 回答日時:
正常な動作だと思います、test.php にアクセスした時のリファラは index.html なので。
js の場合は index.html 上で動作するので期待する値が取れます。
なので test.php に js で取得した referrer を渡せばよいかと。
具体的には
--index.html
<script src="test.js" />
-- test.js
ref = document.referrer;
document.write('<script src="test.php?ref=' + ref + '">');
-- test.php
header('Content-type: application/x-javascript');
$ref = $_GET['ref'];
// と思っていますが、実際やったことはありません。
なるほど、確かにサーバーサイド、クライアントサイドで
の仕様からするとそういう動きになりますね。
当たり前のことを見落としていました。
まだ試していませんが、回答いただいた方法で
目的は、達成しそうです。
有難うございました。
No.2
- 回答日時:
すべてのhtmlの拡張子を、phpに変えてしまって一行目に自作アクセス解析(データ保存)関数を呼ぶコードを記述するとか。
.htaccessを使って、htmlの拡張子のままでもPHPコードが動くようにして、自作アクセス解析関数を呼ぶコードを記述するとか。
mod_layout(Apacheの拡張モジュール)が使えるなら、自動的に一行目に自作アクセス解析関数を呼ぶPHPコード埋め込むという手法もありですね。
サーバー側だけで処理する方が確実で簡単だと思いますよ。
JavaScriptのOn/Offを気にしないで済みますし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHP MySql ページング 2 2022/09/20 06:38
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPが実行できない
-
コメントの開始位置をそろえるには
-
index置いてもIndex of /が表示...
-
Twigテンプレートエンジンの変...
-
HTMLのかなり基本的なことにつ...
-
XAMPPについて
-
OpenPNEのセットアップ画面がで...
-
index.htmを表示させないために...
-
javascriptとPHPを用いた自作ア...
-
PCに保存していた写真を見られ...
-
linux duコマンドで困っています。
-
拡張子をつくる
-
robocopyのログの質問です。
-
OpenFileDialogを使った後にも...
-
Teratermマクロの戻り値の取得失敗
-
ファイルの作成日時について
-
Excelで外部のファイルの場所を...
-
C# mciSendStringでエラーコー...
-
Windowsのバッチファイルでcall...
-
メルカリを退会して再登録した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ECCUBE4のページ管理でPHPを実...
-
localhost/~.php で404エラー
-
javascriptとPHPを用いた自作ア...
-
cookieとhtaccessをつかったペ...
-
IISでhtaccessの記載
-
PHPのセキュリティ(ドキュメン...
-
caclsエラーについて。
-
mod_rewriteの正規表現
-
phpのエラーの意味がわかりませ...
-
Subversionで単体ファイルのバ...
-
PHPで、指定した要素の最後にHT...
-
同じサーバー内で複数のHPのi...
-
有料のレンタルサーバを借りた...
-
PHP リファラの偽装で、ブック...
-
コメントの開始位置をそろえるには
-
localhost127.0.0.1で403エラー
-
PCに保存していた写真を見られ...
-
Excelの関数について教えてくだ...
-
拡張子をつくる
-
Excelで外部のファイルの場所を...
おすすめ情報