1

我正在尝试找出一种方法来为企业进行一些网站跟踪。有没有办法将 PHP 代码添加到网页上的可点击链接中,以便当用户点击将他们带到不同页面的链接时,PHP 代码会在点击操作发生之前立即执行?那么像这样的东西会在链接到网站之前执行一些 PHP 代码吗? 堆栈溢出链接

4

7 回答 7

1

不,不是直接的。PHP 仅适用于服务器端代码。我建议您查看 Mixpanel、Kissmetrics 或 Google Analytics 之类的工具。

于 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 函数,运行您的代码,函数的最后一行将是标题行。标头(位置:'http://whateverlink.com');

真的与提交 PHP 表单没有什么不同

于 2012-10-10T00:30:29.490 回答
0

您可以链接到网站上的 PHP 页面,并header('Location: <new url>')在执行 PHP 代码后用于重定向。

于 2012-10-10T00:28:42.670 回答
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 回答
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) 将一个字符串附加到名为 track.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.asp?q="+str,真的); 这可能很容易 xmlhttp.open("GET","gethint.php?q="+str,true); PHP 或 ASP 差别不大。接下来要记住的是“txtHint”是一个 HTML 元素,您希望页面的响应返回到该元素中。因此,例如,您可以使用“gethint.php”或 asp 来回显“Success”或“Fail”。

附带说明一下,如果您希望为响应设置样式,可以通过与页面其余部分相同的样式表来完成。我希望这对伴侣有帮助:)

于 2012-10-10T00:50:50.533 回答