プロが教える店舗&オフィスのセキュリティ対策術

VB.NETのWebアプリケーションでアクセスカウンターを作りたいのですが、ページがアクセスされた時にDBの値を+1するまではできたのですが、ブラウザの更新ボタンを押したときにアクセスカウントを+1させたくないのですが、その技術がわかりません。(更新ボタンで+1させないようにCache("StartFlag") = "ON"して、対応している、がこれに問題がある)

今作っている処理は以下の通りです。
Private Sub Page_Load
 If Not IsPostBack Then
  カウンタを+1する処理
  (ただしCache("StartFlag") がONなら+1しない)
Cache("StartFlag") = "ON"
End If
End Sub
 
ですが Cache("StartFlag") が"ON"を保持したままになってしまうので、どこのPCからアクセスしてもカウンタが+1されません。
なにか良いアイデアはないでしょうか?
例えば
1)クライアントの情報を保持しておき、
  クライアントが変化したら+1する
(クライアントの情報の取得の仕方がわかりません)
2)Cache("StartFlag") をクライアント毎のセッション変数に変えて、セッションが切れて再びアクセスされたら+1する(やり方がわかりません)

その他、参考になりそうなURLも教えていただきたいのですが、お願いいたします。

A 回答 (2件)

2が妥当でしょう。



Cache("StartFlag") → Session("StartFlag")

この回答への補足

todo36さんいつもお世話様です。セッション変数って普通に使えたんですね。
で、つぎなる課題は、これだとブラウザを一度消して、また起動してここをアクセスすると、カウンタが+1されるのですが、それの拒否は無理なのですかね?CGIのアクセスカウンタなどは同じところからアクセスしたら時間がたたないとカウントが+1されないみたいな仕様になっていますよね、あれってどうやってるのでしょうか?
ちなみに今作っているものは これ↓です
http://fleamarket.dip.jp/alice/

あと話は変わりますが、アクセスしてきた人(PC)の情報って得られるのですかね?

補足日時:2005/05/20 17:08
    • good
    • 0

Cookie

この回答への補足

ええ!そんなぁ(; . ;)

補足日時:2005/05/23 16:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!