有没有办法将PHP代码添加到可点击链接?

时间:2012-10-10 00:25:43

标签: php

我正试图想办法为企业做一些网站跟踪。有没有办法将PHP代码添加到网页上的可点击链接,这样当用户点击链接将他们带到另一个页面时,PHP代码就会在点击操作之前执行? 所以像这样的东西会在链接到网站之前执行一些PHP代码吗?     Stackoverflow link

7 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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>

答案 2 :(得分:1)

链接到PHP函数,运行你的代码,函数的最后一行将是一个标题行。     标题(位置:'http://whateverlink.com');

与提交PHP表单无异“

答案 3 :(得分:0)

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

答案 4 :(得分: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>

答案 5 :(得分: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,例如计算某些给定页面的链接数量。

答案 6 :(得分:0)

尽管人们说你可以这样做,但结合使用javascript。 这是一种你毫无疑问听说过的方法,叫做#34; AJAX&#34;。这意味着你运行一个在后台调用PHP脚本的Javascript函数。

w3schools有一个很棒的教程:http://www.w3schools.com/ajax/default.asp

你可以使用POST和&amp; 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();
}

所以本质上是&#34; str&#34; string是你希望传递给javascript函数然后通过这里显示的get方法传递给PHP文件的值xmlhttp.open(&#34; GET&#34;,&#34; gethint.asp?q =&#34 + STR,TRUE);这可以很容易就是xmlhttp.open(&#34; GET&#34;,&#34; gethint.php?q =&#34; + str,true); PHP或ASP它没什么区别。接下来要记住的是&#34; txtHint&#34;是一个HTML元素,您希望页面的响应返回。所以例如你可以拥有&#34; gethint.php&#34;或者是回声&#34;成功&#34;或&#34;失败&#34;。

在旁注上如果您希望对样式进行样式设置,可以通过与页面其余部分相同的样式表来完成。我希望这有助于交配:)