カウンターcgiの作成 日記その2
カウンターcgiの作成を思い出したので
続きを・・・
sqliteで作ることにしたのですが!!
(もともとsqliteで書いてるし・・・)
phpのほうが作りやすいけど sqliteいれるのに
かりているサーバーだと中級程度の知識がいるので
(ブログ内にコンパイルなど設定方法のせてはいますけど・・・)
なにもしないで使える perl にすることに決定。
もともと文字として数字を保存していたのですけど
!! 10億カウント達成!!
なんてありえないけど 10億に設定してクリックするとなんと!!
数字が2億を超えると 変な数字になることが判明しました。
おーい 整数の32bit制限かい といことで 2の7乗を超えると・・・
inc方法を変更してさらに続けると... 10兆を超えていると
DB内で指数表記になりカウンタが増えないことも判明しました。
まぁ 探すとちょうどいいのがあったので
bigintとsqlのユーザー関数で 計算部分を修正して対応。
↑ このように とんでもない数字で動くようになりました。
1億が9桁なので、
あまり多くても意味がないのですが
データは50桁まで表示できるようにしています。(^_^;
でも大きくなると 幅が長くなるので 背景画像に直接数字をいれる機能もほしいですね
とりあえず今の機能
・カウンタ機能(ip重複制限機能付き/日)
png
貼り付けに便利な おまけ機能 ,javascript , frameタグ, htmlタグ 出力機能
・総計、今日、昨日、昨日までの最近の1ヶ月の平均を表示
・管理者のログイン画面(ログイン機能・ホストブロック機能のみ:操作領域未実装)
・カウンタ 1個のみ
無管理で1個だけカウントさせるだけなら
使えることは使えますが
管理画面もまだできていないので
また気が向いたら続きをつくりましょう。
今後の課題
・IDやNOを指定して複数カウンタ機能
・管理画面の操作log機能(ip,操作,時間)
+ログイン指定回数ミスで指定時間アクセス拒否機能
sessionで拒否かipで拒否どちらか検討
・ページ毎にカウント機能 トータル集計
・表示画像の種類などを多機能化・・・
・コマンド定期実行機能
・数分の有効期限のログイン認証URLメール発行機能
管理者ログインパスワード+認証URL経由でないと
ログインさせないとか・・・
将来的には、ログインはこれでいきたいですね・・・