2012-10-10 56 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回顯「成功」或「失敗」。

如果您希望自己設計風格,可以通過與頁面其餘部分相同的樣式表完成回覆。我希望這有助於隊友:)

相關問題