HTMLにてaタグクリック時にping属性のデータをPHPで受け取る方法
HTMLのaタグにping属性というものを設定できるらしく、設定したリンクをクリックした際、当該属性に指定したURLへpingが送信されるとのこと。「遷移前のページURL」「遷移後のページURL」「GETパラメータ」辺りをPHPで受け取り、ログに出力してみたい。以下にソースコードをメモ。
ソースコード
遷移前のページ(before.php)
<a href="./after.php" ping="./log.php?price=100">link</a>
pingを受け取るページ(log.php)
<?php
error_log(
print_r($_SERVER['HTTP_PING_TO'], true) . "\n" . print_r($_SERVER['HTTP_PING_FROM'], true) . "\n" . print_r($_GET['price'], true) . "\n-----",
3,
'./test.log'
);
解説等
以下で受け取れる。
- $_SERVER['HTTP_PING_TO'] → 遷移後のページ
- $_SERVER['HTTP_PING_FROM'] → 遷移前のページ
- $_GET['price'] → GETパラメータ
ユーザーエージェントやアクセスIPアドレス等を取得したい場合は$_SERVERから対応するものを指定すると良い。
注意点
ping属性が現時点ではfierfoxに対応していない点に注意。詳細はリファレンスのブラウザの互換性部分を参照すること。
リファレンス
https://developer.mozilla.org/ja/docs/Web/HTML/Element/a#ping
所感
簡単な計測システムなんかを作りたい場合は使えるかも。firefox未対応なのは痛いところだけどスマホ向けサイトだとあんまり影響は無さそう。
関連記事
-
-
formのinput="file"でディレクトリを選択させ、ディレクトリ内のファイルを全てアップロードする方法
フォームで複数のファイルをアップロードしたい場合、input="file"を複数 ...
-
-
同一フォーム内でクリックするボタンによって送信先を変更する方法
同一フォーム内で「登録する」ボタンと「プレビュー」ボタンを用意し、「登録する」を ...
-
-
HTMLとJavaScriptのソースコードの暗号化(難読化)
サーバーサイドはソースを見られないけどクライアントサイドはソースを見られるので、 ...
-
-
lazyload.js等のライブラリを使わずHTMLのみで画像の遅延読み込みを行う方法
画像を遅延読み込みさせるとなるとだいぶ前に書いたlazyload.jsを用いる方 ...
-
-
HTMLのimgタグでブラウザ幅によって異なる画像を表示する方法
あるサイトのコーディングデータを貰った際に1つのimgタグに対して複数の画像が指 ...