- ベストアンサー
リンク(URL)をクリックした後、PHPへ
データベースにURLのリンク(<a href=>)を登録しています。 PHPを使って、そのデータ(リンク)を表示しています。 やりたいことは、 ブラウザからそのURLをクリックしたら、データベースに接続して、クリックしたことをカウントしたいと思います。 ランキングのためにカウント数をデータベースに保存したいです。 もちろん、カウントした後に、(ロスなく)リンク先のホームページを表示させたいと思います。 どのような方法をすればいいのでしょうか? ランキングは一般にどのように統計を取っているんでしょうか? どなたかご教授いただけると幸いです。 よろしくお願いします。 使用環境 ●Mac OSX(Tiger) ●Apache 1.3.33 ●PHP 4.4.4 ●MySQL 4.1.22
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
リンクが表示されるページを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のリフレッシュタグを使ってください。(別に出力することはないと思いますが。)
その他の回答 (2)
- hrm_mmm
- ベストアンサー率63% (292/459)
クリックカウンターで探せば、サンプルソースもいっぱい見つかると思います。 http://php.s3.to/tt/ 上記チュートリアルをじっくり読んだ上で、同サイト配布のリンクカウンターのソースを読むのが近道かな。 http://php.s3.to/data/#jump あとは、テキストログ保存のところをMySQLデータベース接続データ登録へ変更してみて下さい。
- reachippatu
- ベストアンサー率24% (105/431)
クリックした後のページが表示されるときにDBに接続して カウントアップする様にすればいいのでは? クリックする前のページでは無理だと思います。
補足
リンク先が自分で作ったものであればいいんですが、外部リンクなのでクリックするときにカウントを取りたいんです。。 やはり無理でしょうか?
お礼
ありがとうございました。 やっぱり1回クッションおかないといけないみたいですね。。 一度それでやってみます。。