我想找出一種方法來做一些業務的網站跟蹤。有沒有辦法將PHP代碼添加到網頁上的可點擊鏈接上,以便當用戶點擊鏈接將其帶到不同的頁面時,PHP代碼會在執行點擊操作之前執行? 因此,在鏈接到網站之前,會執行一些PHP代碼? Stackoverflow link有沒有辦法將PHP代碼添加到可點擊的鏈接?
回答
不,不是直接。 PHP僅用於服務器端代碼。我建議你看看Mixpanel,Kissmetrics或Google Analytics等工具。
您可以鏈接到您網站上的PHP頁面,並在執行完PHP代碼後使用header('Location: <new url>')
重定向。
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>
真的沒有不同。如果您是使用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>
你可以通過使用$ _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,例如統計某個給定頁面的鏈接數量。
儘管人們說,你可以做到這一點,結合使用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回顯「成功」或「失敗」。
如果您希望自己設計風格,可以通過與頁面其餘部分相同的樣式表完成回覆。我希望這有助於隊友:)
- 1. 將可點擊的圖像鏈接添加到jQuery代碼
- 2. 有沒有辦法讓鏈接在OSX終端中可點擊?
- 3. 有沒有辦法將嵌入式Python代碼添加到Markdown?
- 4. 將php代碼添加到url鏈接
- 5. 有沒有辦法將iFrame中的鏈接重定向到源代碼?
- 6. 有沒有辦法檢查鏈接是否被點擊?
- 7. 有沒有辦法將鏈接添加到CQ5的「工具」部分
- 8. 有沒有辦法將PHP SimpleXMLElement添加到另一個SimpleXMLElement?
- 9. 有沒有辦法將Pygame添加到本地PHP文件中?
- 10. 有沒有辦法爲iOS的通用鏈接添加userInfo?
- 11. 有沒有辦法將文本(鏈接)添加到原始數據?
- 12. 有沒有辦法看到元素是否可見,可點擊?
- 13. 添加可點擊鏈接到XpsDocument
- 14. 添加可點擊的超鏈接到RichTextBox沒有新的段落
- 15. 有沒有什麼辦法在eclispe鏈接到母親班通過點擊
- 16. 鏈接沒有點擊jquery
- 17. Selenium沒有點擊鏈接
- 18. 有沒有辦法將靜態鏈接與STL鏈接?
- 19. 有沒有辦法讓CGO代碼的調試符號鏈接到Go?
- 20. Eclipse代碼格式化:有沒有辦法添加「節線」
- 21. 有沒有辦法鏈接mex文件與代碼編譯沒有-fPIC
- 22. 有沒有辦法在Apache中預加載代碼在PHP中?
- 23. 有沒有辦法將Meteor.Collections()鏈接到一起?
- 24. 有沒有辦法將更多小時鏈接到日期?
- 25. 有沒有辦法將JDK註釋鏈接到需求?
- 26. 在iOS上,有沒有辦法將方法addTarget添加到UIImageView?
- 27. jQuery:有沒有辦法將'點擊'事件變成雙擊?
- 28. 有沒有辦法將圖像添加到VBA中的MessageBox?
- 29. 有沒有辦法鏈接querySelectorAll與getElementsByTagName?
- 30. 有沒有辦法模擬水貂中的鏈接/按鈕點擊?
你有任何控制鏈接去哪裏? –