ビジネス用の Web サイト追跡を行う方法を見つけようとしています。ユーザーが別のページに移動するリンクをクリックすると、クリック アクションが実行される直前に PHP コードが実行されるように、Web ページ上のクリック可能なリンクに PHP コードを追加する方法はありますか? では、このようなものは、Web サイトにリンクする前に PHP コードを実行するのでしょうか? スタックオーバーフロー リンク
7 に答える
いいえ、直接ではありません。PHPはサーバー側のコード専用です。Mixpanel、Kissmetrics、GoogleAnalyticsなどのツールを検討することをお勧めします。
PHPはサーバーサイドスクリプト言語です。したがって、すべての処理はサーバー自体で実行する必要があるため、ブラウザでクライアント側で実行することはできません。
Javascriptを使用して、必要な機能を実現できます。
あなたのページでは、次のようなことを行うことができます。
<!-- In your page head -->
<script type="text/javascript">
function myLinkFunction() {
// Do some Javascript here to track the click
// If you have jQuery on your page, you could do this:
$.post("trackclick.php", { link-id: "212", other-info: "some data" } );
// Send the user to the linked page:
return true;
}
</script>
<!-- Somewhere else -->
<a href="somepage.html" onClick="myLinkFunction();">Link</a>
PHP関数にリンクし、コードを実行します。関数の最後の行はヘッダー行になります。header(Location:'http://whateverlink.com');
PHPフォームを送信するのとまったく同じです
WebサイトのPHPページにリンクし、header('Location: <new url>')
PHPコードを実行した後にリダイレクトするために使用できます。
$ _GETを使用して、トラッキングコードまたは整数を渡すことができます。次に、HTMLの前の次のページの上部で、いくつかの小さなトラッキングコードを実行します。トラッキングコードは、好みに応じて、データベースまたはフラットファイルを更新する可能性があります。
landingpage.html
<a href = "somepage.php?tracking=1">Next Page</a>
somepage.php
$tally = $_GET['tracking'];
$track = $tally." from landingpage.html";
$handle = fopen('path/to/tracks.txt','a');
fwrite($handle, $track);
これは非常に単純化されていますが、プロセスは(a)tracks.txtというテキストファイルの最後に文字列を追加することです。特定のページからのリンク数を集計するなど、他の方法でtracks.txtを処理できます。
人々がこれを行うことができると言っているにもかかわらず、javascript と組み合わせて使用します。これは、「AJAX」と呼ばれる、聞いたことのあるメソッドです。これは、バックグラウンドで PHP スクリプトを呼び出す Javascript 関数を実行することを意味します。
w3schools にはすばらしいチュートリアルがあります: http://www.w3schools.com/ajax/default.asp
POST メソッドと GET メソッドの両方を使用して、データを php 関数に渡すことができます。次のようになります。
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.asp?q="+str,true);
xmlhttp.send();
}
したがって、本質的に「str」文字列は、javascript 関数に渡したい値であり、次にここに示す get メソッドを介して PHP ファイルに渡したい値です。真実); これは簡単に xmlhttp.open("GET","gethint.php?q="+str,true); となります。PHP か ASP かは、ほとんど違いはありません。次に覚えておくべきことは、「txtHint」は、ページからの応答を返す HTML 要素であることです。たとえば、「成功」または「失敗」をエコーする「gethint.php」または asp を持つことができます。
余談ですが、応答のスタイルを設定したい場合は、ページの残りの部分と同じスタイル シートを使用して行うことができます。これが仲間に役立つことを願っています:)
jQuery を使用していた場合は、次のようなことができます。
<a href="link.html" class="link">liunk</a>
<script>
$(document).ready(function() {
$('.link').click(function(e) {
e.preventDefault();
var $url = $(this).attr('href');
var logged = $.post('tracking-script.php', {link: $url});
// from 'tracking-script.php' return a string of yes or something
if(logged == 'yes') {
//window.location = $url;
return true;
}
});
});
</script>