2012-04-28 4 views
0

글쎄, 사용자가 링크를 클릭하여 MySQL 데이터베이스를 인쇄하고 쿼리 할 때 기록하고 싶습니다. PHP를 사용하여 데이터베이스를 쿼리하는 방법을 알고 있지만 사용자가 링크를 클릭했는지 여부를 알 수 있는지 여부는 확실하지 않습니다.링크가 PHP에서 클릭되었는지 확인하는 방법

이렇게 링크를 인쇄했습니다. 링크가 자신의 사이트에이 아니라면

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

+0

을 자바 스크립트를 사용하여 서버에 요청을 트리거해야합니다. 사용자가 귀하의 페이지를 볼 때 PHP의 작업은 오래되었습니다. –

+0

가능한 [JavaScript 링크 클릭 카운터] (http://stackoverflow.com/questions/3114969/javascript-link-click-counter) –

+2

또는 http://www.yoursite.com/redirect에 연결할 수 있습니다. .php? www.google.com/ 그리고 필요한 로깅 및 리디렉션 기능을 구현하십시오. – jedwards

답변

1

링크를 추적하려면 서버에 링크 추적 스크립트를 만들어야합니다. 즉 linktracker.php

그런 다음, linktracker.php에서

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

즉 전달 URL을 전달하여 해당 스크립트에 대한 링크를 가리 키도록 코드를 변경, 당신은 같은 필요 :

<?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

1

, 당신은 다시 서버로 사용자의 클릭 이벤트를 보낼 수 (너무 jQuery를 이용할 수) JavaScript와 같은 클라이언트 측 스크립트 언어를 사용해야합니다.

1

onclick="handleClick()"을 추가하고 서버 uaing 아약스 당신은 URL 리디렉션 메커니즘을 구축해야

2

에 클릭을보고 handleClick라는 자바 스크립트 함수를 작성합니다.

$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); 

당신이 링크 공유 또는 성격의 무언가를 추적하려고 시도하는 경우, 나는 절대적으로 자바 스크립트에서이 작업을 수행하지 않을 것입니다.

+0

보안 침해에주의를 기울이지 않는 한 전혀 권장하지 않습니다. CSRF 공격에 대한 자세한 정보는 –

+1

음. 그것은 심지어 말이되지 않습니다. URL 리디렉션 메커니즘을 수행하는 '올바른 방법'은 URL에 대한 해시 테이블을 생성하는 것입니다 (외부에서 사용하지 못하도록합니다). 그러나 이것이 CSRF의 일종이라고 생각하는 방법을 모릅니다. 우리가 90 년대 초반부터 웹에서 해왔 던 것처럼 리디렉터입니다. 로그인 시스템에 대한 언급조차 없습니다. CSRF에 대한 더 많은 연구가 필요하다고 생각합니다. –

+0

당신을 업 그레 이드 할 수 없지만이 개념은 제가이 문제를 해결하기 위해 사용했던 것입니다. 감사. – wazy

관련 문제