みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

リンク(URL)をクリックした後、PHPへ

データベースにURLのリンク(<a href=>)を登録しています。
PHPを使って、そのデータ(リンク)を表示しています。

やりたいことは、
ブラウザからそのURLをクリックしたら、データベースに接続して、クリックしたことをカウントしたいと思います。
ランキングのためにカウント数をデータベースに保存したいです。
もちろん、カウントした後に、(ロスなく)リンク先のホームページを表示させたいと思います。

どのような方法をすればいいのでしょうか?
ランキングは一般にどのように統計を取っているんでしょうか?
どなたかご教授いただけると幸いです。
よろしくお願いします。

使用環境
●Mac OSX(Tiger)
●Apache 1.3.33
●PHP 4.4.4
●MySQL 4.1.22

投稿日時 - 2007-03-17 13:18:56

QNo.2840856

困ってます

質問者が選んだベストアンサー

 リンクが表示されるページをlinklist.htmlとします。
 linklist.phpで、表記するサイトURLを、相手のサイトのURLではなく、自分のサーバーにあるファイル count.php?id=(サイトの登録ID)
などとします。
(例:<a href="count.php?id=167">○○のページ</a>)

 そして、count.phpでは、
<?php
$GET_['id'];
//~データベースに登録されているカウント回数を1プラスする処理~
//(データベース苦手なので、この部分はご勘弁を・・・)
$site = "http://site.ne.jp/"; //相手サイトのURL。データベースから呼び出しておいてください。
header("Location: $site");//一番最後に置きます。
?>

 header("Location: Webサイトアドレス")は、HTMLの
<META http-equiv="refresh" content="0; URL=アドレス">
と同じもので、HTMLのリフレッシュタグよりも素早い移動ができます。
 なお、headerより前に何らかの出力があると無効になるそうなので、もしその前にprintなどを使う場合は、HTMLのリフレッシュタグを使ってください。(別に出力することはないと思いますが。)

投稿日時 - 2007-03-17 18:17:34

お礼

ありがとうございました。
やっぱり1回クッションおかないといけないみたいですね。。
一度それでやってみます。。

投稿日時 - 2007-03-17 20:17:51

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

クリックカウンターで探せば、サンプルソースもいっぱい見つかると思います。

http://php.s3.to/tt/
上記チュートリアルをじっくり読んだ上で、同サイト配布のリンクカウンターのソースを読むのが近道かな。
http://php.s3.to/data/#jump
あとは、テキストログ保存のところをMySQLデータベース接続データ登録へ変更してみて下さい。

投稿日時 - 2007-03-17 15:27:45

ANo.1

クリックした後のページが表示されるときにDBに接続して
カウントアップする様にすればいいのでは?

クリックする前のページでは無理だと思います。

投稿日時 - 2007-03-17 13:42:01

補足

リンク先が自分で作ったものであればいいんですが、外部リンクなのでクリックするときにカウントを取りたいんです。。
やはり無理でしょうか?

投稿日時 - 2007-03-17 15:29:37

あなたにオススメの質問