1

ビジネス用の Web サイト追跡を行う方法を見つけようとしています。ユーザーが別のページに移動するリンクをクリックすると、クリック アクションが実行される直前に PHP コードが実行されるように、Web ページ上のクリック可能なリンクに PHP コードを追加する方法はありますか? では、このようなものは、Web サイトにリンクする前に PHP コードを実行するのでしょうか? スタックオーバーフロー リンク

4

7 に答える 7

1

いいえ、直接ではありません。PHPはサーバー側のコード専用です。Mixpanel、Kissmetrics、GoogleAnalyticsなどのツールを検討することをお勧めします。

于 2012-10-10T00:28:10.473 に答える
1

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>
于 2012-10-10T00:28:53.950 に答える
1

PHP関数にリンクし、コードを実行します。関数の最後の行はヘッダー行になります。header(Location:'http://whateverlink.com');

PHPフォームを送信するのとまったく同じです

于 2012-10-10T00:30:29.490 に答える
0

WebサイトのPHPページにリンクし、header('Location: <new url>')PHPコードを実行した後にリダイレクトするために使用できます。

于 2012-10-10T00:28:42.670 に答える
0

$ _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を処理できます。

于 2012-10-10T00:42:23.017 に答える
0

人々がこれを行うことができると言っているにもかかわらず、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 を持つことができます。

余談ですが、応答のスタイルを設定したい場合は、ページの残りの部分と同じスタイル シートを使用して行うことができます。これが仲間に役立つことを願っています:)

于 2012-10-10T00:50:50.533 に答える
0

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>
于 2012-10-10T00:38:03.037 に答える