■実験室

■プロフィール

Sligh'Hand

Author:Sligh'Hand

所属ギルド
Open Travelers
称号
ぐったりたぬぬ
特徴
公園内でマジシャンを目指す新米教師。桜の下で「たぬき寝入り」するのがマイブーム。

■最近の記事
■最近のコメント
■ブログ内検索

■リンク
■RSSリンク
■カテゴリー
■月別アーカイブ

ぐったりたぬぬぷr(ry

 ども、続けてスラです。

 勢いでカウンタプログラムの詳細なんか書き始めたら、勢いあまり過ぎて、終わらない気配が漂ってきました……。 始めたことをやや後悔……。

 いつものぐったりした雰囲気とくらべると、かなりマニアックな内容になりつつある気がしないでもないですが、ドン引きしないで軽くスルーしてあげてください……。





PHP での具体的な処理の流れ

 大まかなデータの流れを決めたら、次は PHP と MySQL で使用する具体的な処理を決めていきましょうb

 まずは、PHP から。 これはそんなに難しくないですb なんてったって、質問とその答えを丸投げするだけなので。 とはいっても、一応、通訳の役割を持っているので、まったく何もしないわけじゃぁないですけど、ね。

 PHP はアクセスを受け付けると、アクセスして来た人の IP アドレス、アクセスのあったページを取得します。 で、MySQL とお話する準備を整えた上で、先の情報を元に、MySQLに質問します。 「この IP アドレスの方からアクセスがあったんだけど、カウンタの値はいくつにしたらいーですか? ちなみに、アクセスのあったページは http://...... ですよb」 なーんて言って、MySQL の答えを待つわけです。 あとは、MySQL から受け取った回答を出力すればおしまいです。 念のため、MySQL とお話しする準備ができなかったり、あるいは MySQL が何も答えてくれなかったときの処理を作る必要もありそうですねb

  • MySQL へ接続
  • 質問を丸投げ (ストアドプロシージャの起動) & 回答の受け取り
  • 回答を Flash が読めるよう出力

MySQL での具体的な処理の流れ

 次に、MySQL の処理。 これはちょっと厄介です。

 PHP からは、アクセスして来た方の IP アドレスと、アクセスのあったページの URL が渡されます。 まず IP アドレスを元に、「アクセス履歴」 を検索します。 検索の結果、履歴が見つからなければ、カウンタの値を 1 増やして PHP に返答します。 加えて、その IP アドレスとアクセスのあった時刻を、「アクセス履歴」 に追加します。 こうすることで、次に同じ IP アドレスからアクセスがあった場合、「あ、この人は前にアクセスしてくれた人だ」 と判るようになるわけです。

 次に、「アクセス履歴」 のなかに、IP アドレスが見つかった場合の処理です。 このとき、アクセスして来てくれた人は、過去にもカウンタの値を見ていることになります。 たとえば、このブログを見ながら、F5 キーを押した場合にもこんなことが起こります。 そんなときにカウンタの値が変わっちゃうのは、ちょっと不都合ですb

 じゃぁ、こんな場合にはカウンタの値を変えなければいいのか、っていうとかならずしもそうとは限りません。 たとえば、3 日前にアクセスした記録が 「アクセス履歴」 に残っていた場合。 こんなときには、カウンタの値が増えても良い気がしますよねb

 そんなわけで、「アクセス履歴」 には IP アドレスのほかに、アクセスのあった時刻を記録しておきます。 この時刻を参照して、一定期間内のアクセスであればカウンタの値を増やさずに、逆に一定以上の時間が経過しているのであればカウンタの値を増やしましょうb という作戦を取ります。

 それを一連の流れにすると↓こんな感じ。

  • PHP から呼び出される
  • 現在時刻を取得
  • PHP から渡された IP アドレスをキーに 「アクセス履歴」 を検索し、前回のアクセス時刻を取得する
  • 3 つの条件で分岐
    • 前回のアクセス時刻が取得できなかったとき (初めてのアクセス)
      • カウンタの値を 1 増やす
      • IP アドレスと現在時刻を 「アクセス履歴」 に記録
    • 前回アクセス時刻は取得できたが、それが古かったとき
      • カウンタの値を 1 増やす
      • IP アドレスと現在時刻を 「アクセス履歴」 に記録
    • 前回アクセス時刻が取得でき、最近のものだったとき
      • IP アドレスと現在時刻を 「アクセス履歴」 に記録
  • 最新のカウンタの値を取得して、PHP に回答する

 とまぁ、こんな感じで、次回は実際のプログラムを組んでいきます。

テーマ:プログラミング - ジャンル:コンピュータ

幻と現の間で | 23:10:20 | Trackback(0) | Comments(0)
コメントの投稿

管理者にだけ表示を許可する

FC2Ad