2012-10-10 53 views
1

我想找出一种方法来做一些业务的网站跟踪。有没有办法将PHP代码添加到网页上的可点击链接上,以便当用户点击链接将其带到不同的页面时,PHP代码会在执行点击操作之前执行? 因此,在链接到网站之前,会执行一些PHP代码? Stackoverflow link有没有办法将PHP代码添加到可点击的链接?

+0

你有任何控制链接去哪里? –

回答

1

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

比提交PHP形式

+0

谢谢你,这很简单。 – Dag

1

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

0

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

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> 
+0

从javascript运行MySQL插入很简单吗?因为我有一个真正简单的PHP插入我所需要的。 – Dag

+0

是的,我更新了我的答案。 – zachjs

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> 
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一个文本文件的末尾ppending的字符串。您可以通过其他方式处理tracks.txt,例如统计某个给定页面的链接数量。

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”字符串,您希望通过这里显示xmlhttp.open get方法传递到JavaScript函数,然后到PHP文件中的值( “GET”, “gethint.asp q =?” + STR,TRUE);这可能很容易是xmlhttp.open(“GET”,“gethint.php?q =”+ str,true); PHP或ASP几乎没有什么区别。接下来要记住的是“txtHint”是一个HTML元素,您希望页面的响应返回。例如,您可以使用“gethint.php”或asp回显“成功”或“失败”。

如果您希望自己设计风格,可以通过与页面其余部分相同的样式表完成回复。我希望这有助于队友:)

相关问题