2012-04-28 30 views
0

私はこれを初めて使っているので、ユーザーがphpがmysqlデータベースを印刷して照会するリンクをクリックしたときに記録したいと思います。私はPHPを使用してデータベースを照会する方法を知っていますが、ユーザーがリンクをクリックしたかどうかを知ることが可能かどうかはわかりません。phpでリンクがクリックされたかどうかをチェックする方法

このようにリンクを印刷しました。

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

+0

をサーバーへのリクエストをトリガするにはjavascriptを使用する必要があります。ユーザーがあなたのページを見ていると、PHPの仕事は長く終わっています。 –

+0

[JavaScript link click counter](http://stackoverflow.com/questions/3114969/javascript-link-click-counter) –

+2

また、リンク先はhttp://www.yoursite.com/redirectです。必要なロギングとリダイレクト機能を実装してください。 – 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()"を追加し、あなたがURLのリダイレクトメカニズムを構築する必要があるサーバーのuaingアヤックス

2

にクリックを報告する​​という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の攻撃のためのseaech –

+1

ええと。それは意味をなさない。 URLリダイレクションメカニズムを行う「正しい」方法は、URLのハッシュテーブルを作成することです(外部からの使用を防ぎます)。しかし、これが何らかのCSRFであるとはどう考えているのか分かりません。 90年代初頭からWebでやっているように、リダイレクタです。ログインシステムについては言及していません。私はあなたがCSRFについてより多くの研究をする必要があると思います。 –

+0

どちらもアップアップすることはできませんが、このコンセプトは私が問題を解決するために使用したものです。ありがとう。 – wazy

関連する問題