サンデープログラマー
パソコンにまつわるいろいろ
カレンダー
<< 2017年6月 >>
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

最新の記事

最新のコメント

カテゴリ

過去の記事一覧


PHPで「いいね!」ボタン

 「いいね!」のクリックをページに貼り付けるのが、面白そうだ。調べると、FaceBookのコードを張り付ければ、実現できそうだ。それを自前で作れないか、そう考えるのは、プログラムを楽しむサンデープログラマーにとって、当然の事だ。

 クリックしたら、そのカウントを数える。イベントドリブンのASP.NETで組めば、Hello World並みで、難しさは全くないだろう。Javaでも行けるかも知れない。PHPでは、どうか。ちょと詰まるね。

 そこで考えた。まず必要な情報は何か。いろいろなページに貼り付けるとして、ページのURL、次に日付、件数、できれば、IPアドレスかな。となると、思い出す。PHPの学習でお世話になった、「PHPによるWebアプリケーションスーパーサンプル」の本だ。そのログがそのまま使えるではないか。つまり、クリックしたら、それを記録する。すでに出来たも同然だ。

 と言う事で、「いいね!」の画像を準備して、HTMLにコードを書く。
<form action="log.php" method="get">
<input type="image" src="good.png" value="submit" />
</form>
てな具合だ。だがこれでは、クリックした途端、画面が切り替わる。ならば、「いいね!」をフレームに押し込もう。そんな事で作ってみた。

 まず、index.htmlに入れ物をフレームで作る。
<body>
<iframe src="goodlog.html" width="100px" height="40px" marginwidth="0px" scrolling="no">
</iframe>
</body>

 それを受け、「いいね!」ボタンのgoodlog.htmlを作る。
<body>
<form action="log.php" method="get">
<input type="image" src="good.png" value="submit" />
</form>
</body>

 log.phpは、ちょこっとコードを追加したのを使う。
<?php
require "config.php";
$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");
mysql_select_db($dbname) or die("接続エラー");
$log_date = date("Y-m-d");
$log_time = date("H:i:s");
$log_ip = getenv("remote_addr");
$log_url = getenv("http_referer");
$sql = "INSERT INTO log ("
    . " log_date, "
    . " log_time, "
    . " log_ip, "
    . " log_url "
    . ") values ("
    . "'" . $log_date . "',"
    . "'" . $log_time . "',"
    . "'" . $log_ip . "',"
    . "'" . $log_url . "'"
    . ")";
mysql_query($sql, $conn);
mysql_close($conn);
include "goodlog.html";
?>

 付録のconfig.phpには、接続の為の情報だ。
<?php
$sv = "localhost";
$dbname = "test";
$user = "root";
$pass = "password";
?>

 MySQLのデータベースは、
>mysql -u root -p で接続したのち、
>create database test;
>use test;
>CREATE TABLE log (
  log_date date NOT NULL default '0000-00-00',
  log_time time NOT NULL default '00:00:00',
  log_ip varchar(50) default NULL,
  log_url varchar(255) default NULL
);
とすればよい。

 後は、クリックした後の飾りとか、いろいろ工夫だね。

posted by おやじ at 2013/10/23 10:08

トラックバックURL
http://ohayou.jp/sunday/tb.php?id=41

※言及リンクなし及び、英字のみのトラックバックは受け付けておりません。

トラックバック
トラックバックはありません。

コメント
コメントはありません。

コメントを投稿する
名前 [*]:
E-Mail:
URL:
Cookieに保存:
コメント [*]:

検索


リンク

カウンター
今日: 今日のカウンター今日のカウンター今日のカウンター今日のカウンター今日のカウンター今日のカウンター
昨日: 昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター昨日のカウンター
累計: 累計のカウンター累計のカウンター累計のカウンター累計のカウンター累計のカウンター累計のカウンター

RSS Feed
RSS Feed  最新の記事
RSS Feed  最新のコメント
RSS Feed  最新のトラックバック

プロフィール
ニックネーム:おやじ
誕生日:4月8日
性別:男
血液型:A型

管理

Copyright 2007 サンデープログラマー All Rights Reserved.
Powered by PocketBlog