2012-04-28 170 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