2012-04-28 171 views
0

嗯,我是新來的,所以我想記錄當用戶點擊PHP打印和查詢MySQL數據庫的鏈接。我知道如何使用php查詢數據庫,但我不確定是否有可能知道用戶是否點擊了鏈接。如何檢查一個鏈接是否已被點擊在php

我打印出如此的鏈接。

print ('<a id="myLink" href="http://www.google.com" target="_blank">google</a>');

+0

您必須使用JavaScript來觸發對您服務器的請求。當用戶查看你的頁面時,PHP的工作很長時間了。 – 2012-04-28 00:08:45

+0

[JavaScript鏈接點擊計數器]的可能重複(http://stackoverflow.com/questions/3114969/javascript-link-click-counter) – 2012-04-28 00:08:59

+2

或者,您可以鏈接到:http://www.yoursite.com/redirect .php?www.google.com/並實施必要的日誌記錄和重定向功能。 – jedwards 2012-04-28 00:14:55

回答

1

要跟蹤鏈接,您需要在服務器上創建鏈接跟蹤腳本。即linktracker.php

然後,改變你的代碼,以鏈接到該腳本,通過轉發URL即

<a id="myLink" href="http://mysite.com/linktracker.php?url=http://www.google.com" target="_blank">google</a> 

在linktracker.php,你需要這樣的:

<?php 
    $url = $_GET['url']; 
    // update your database click count for the url 
    // i.e UPDATE linkclicks SET clickcount = clickcount + 1 WHERE url = '$url' 

    // forward the user to the end location 
    header("Location: $url"); 
+0

看起來最簡單的是我正在嘗試做的事情。不得不啓動會話和會話數組,但它的工作。 – wazy 2012-04-28 04:24:49

1

除非鏈接到自己的網站,你需要使用客戶端腳本語言諸如JavaScript(可能使用jQuery的太)到用戶的點擊事件發送回服務器。

1

添加onclick="handleClick()"並編寫了一個名爲​​點擊報告服務器uaing AJAX

2

你需要建立一個URL重定向機制javascript函數。

$link = 'http://www.google.com'; 
echo '<a href="/redir.php?target="'.encodeUriComponent($link).'>google</a>'; 

然後做出redir.php:

<?php 
$targetUrl = $_REQUEST['target']; 
// log this targetUrl to your MySQL database. 

header('Location:'.$targetUrl); 

我絕對,如果你想嘗試跟蹤鏈接股份或類似這種事情不會做這在JavaScript中。

+0

我不會建議這樣做,除非你注意安全漏洞。欲瞭解更多信息CSRF攻擊的海嘯 – 2012-04-28 00:17:53

+1

嗯。這甚至沒有任何意義。做URL重定向機制的「正確」方式是爲URL創建一個哈希表(防止從外部使用),但我真的不知道你是怎麼想這是某種CSRF的。它是一個重定向程序,正如我們自90年代初以來一直在使用Web一樣。甚至沒有提到登錄系統。我認爲你需要對CSRF進行更多的研究。 – 2012-04-28 00:22:31

+0

不能upvote你,但這個概念是我用來解決這個問題。謝謝。 – wazy 2012-04-28 04:25:35

相關問題