Back

期間限定スタンプ帳CGI Ver.0.4

(2007.6.27最終更新)

内容・特徴 / Sample / ダウンロード / 設置方法 / Ver.0.3→Ver.0.4に関して / その他(注意)/ アドバイス

○内容・特徴

○サンプル

↑のスタンプをクリックすると、名前とパスワードの入力画面になります。名前とパスワードを入力すると、スタンプ帳にスタンプが1枚貼られているはずです。
  • 紅いバラのスタンプの方は5枚までしか取得できない設定にしています。
  • 青いバラのスタンプの方は有効枚数は設定していません。
  • ピンクの薔薇のスタンプは日曜日を特別デーに設定しています。日曜日だけ、1回に2枚取得できます。
  • 期間限定にはしていませんが、その分、スタンプを最後に取得して14日間経過した方のデータは削除しています。
  • スタンプが2枚(どちらのスタンプでも同じです)貯まると、賞品と交換できるようにしていますので、お試し下さい。賞品は、フリーのスタンプ画像です。
  • スタンプを15枚取得すると、スタンプ帳と連動しているナンバーズのスクリプトがDLできます。30枚だとサンプルと同じ期間限定ではないスタンプ帳のスクリプトがDLできます。(管理用CGIは共通です。)
  • 30枚以上のスタンプは取得できません。
  • スタンプ帳連動のジャンケンゲームやくじ、Numbersで、スタンプを増やすことができます。(ゲームによっては減ることもあります。)
  • 各種の連携CGIを賞品としてDLできます。
    スタンプ帳の作成
    ↑のリンクからは、スタンプ帳の作成あるいは閲覧のみになります。
  • ○ダウンロード

    stamps.lzh---lzhで圧縮しています。中身は次の通り。
  • stamps.cgi------スタンプ帳CGI本体。
  • kanri.cgi-----管理用CGI。
  • jcode.pl------日本語変換perlライブラリ。(歌代和正氏作。http://www.srekcah.org/jcode/)
  • common.pl-------スタンプ帳用関数ライブラリ。
  • settei.cgi-----設定ファイル。
  • stampstyle.css-----外部スタイルシートファイル。スタンプ帳の画面用です。
  • user.dat-----ユーザーデータファイル。空ファイルです。
  • pricegetter.dat-----賞品獲得者記録ファイル。空ファイルです。
  • message.dat-----参加者へのメッセージ記述ファイル。空ファイルです。
  • stampkind.dat-----スタンプ設定ファイル。空ファイルです。
  • stampinfo.dat-----スタンプ最終取得日記録ファイル。空ファイルです。
  • ○設置方法

    DLして解凍したら、次の手順で設置してください。

    1. あなたのサーバーでCGIが使えるかどうか確認する。
    2. CGIの設定を変更する。
    3. サーバーにアップロードする。
    4. パーミッションを変更する。
    5. webページから呼び出す。(動作確認)
    6. 管理用CGIから各スタンプの設定をする。
    7. 外部スタイルシートファイルを変更し、アップロードする。
    8. リンクを貼る

    ○Ver.0.3→Ver.0.4に関して

    あまりバージョンアップというほど、変更点はありません。
    ファイルは増えていません。データの形式にも変更はありませんので、stamps.cgi、kanri.cgi、common.plを上書き、settei.cgiとstampstyle.cssに数行追加することで、 現在ご使用中のスタンプ帳のデータ・設定のまま、バージョンアップすることができます。
    (参加者へのメッセージは、現在の記事を一旦削除して、書き直す方がいいと思います。)
    ただし、CGIの変更中にスタンプを取得しようとする人がいた場合、データが消えたりするかもしれませんので、 管理用CGIで、「参加者名簿の閲覧・編集・削除」→誰かの「編集画面」を選択しておくといいでしょう。(管理用ロックがかかり、スタンプ帳に一時的に参加できなくなります。)

    common.plを上書きする
    新しくDLしたcommon.plをアップロードし、以前のcommon.plを上書きするだけです。
    settei.cgiに新しく付け加わった部分を付け足す。
    2行目から最後の行の前までのところに、新しくVer.0.4から加わった部分を挿入。4行分です。 詳しくは、設定ファイルsettei.cgiの設定変更についてをご覧下さい。
    stampstyle.cssに新しく付け加わった部分を付け足す。
    新しくVer.0.4から加わった部分を挿入。詳しくは、スタイルシートファイルについてをご覧下さい。
    kanri.cgiを上書きする
    kanri.cgiの管理用パスワードと、perlのパスを変更し、アップロードして以前のkanri.cgiを上書きします。
    stamps.cgiを上書きする
    stamps.cgiのperlのパスと、メールタイトル部分を変更し、アップロードして以前のstamps.cgiを上書きします。

    なお、Numbers!やジャンケン等の連携スクリプトは、そのまま使用できます。DLしなおす必要はありません。
    期間限定でないスタンプ帳CGIの方は、まだVer.0.3のままです。(サンプルでDLできる分です。)

    ○その他

    注意

    サンプルの賞品である期間限定ではないスタンプ帳CGIの方は、期間限定ではない分、登録されたデータのうち、長期間アクセスのないものを削除するようにしています。
    期間限定スタンプ帳の方は、登録されたデータを削除することはありません。ですから、期間限定スタンプ帳CGIを使う場合は、サイトの訪問者数等を考え、登録データが膨大にならないように終了期限を決めてください。
    また、これはあくまでお遊び用のスクリプトです。金銭の授受に関わるような賞品を設定するのは絶対にお止め下さい。(私は責任取れませんので!)

    また、外部スタイルシートファイルは必ず変更してください。他のスクリプトでもそうですが、サンプルそのままで設置されているのを見ると、がっかりします。独自性を出してください。

    更新履歴

    ◆Ver.0.1-----2006年11月6日、公開。
    ◆Ver.0.2-----2006年12月24日、公開。
    ◆2007年2月8日、管理用CGIを修正。
    (スタンプの有効期限を年月日以外で設定したいた場合、管理画面から参加者名簿→各参加者の名前→その人のスタンプ帳を見る・・・見えないようになっていました。これを修正。) ◆Ver.0.3-----2007年4月3日、公開。
    ◆2007年4月4日、一部が古いままでしたので、アップロードしなおしました。
    ◆2007年4月7日、エラーメッセージが出た場合、ファイルロックが残ったままになることがあるのに気付いたので、その点を修正しました。
    ◆2007年4月8日、管理用CGIで最初の選択画面にミスがあったので、修正。(スタンプを一定種類集めたときの賞品を設定していないときに、賞品獲得者が感想を送信した後の画面確認の選択肢が表示されないようになっていました。)
    ◆Ver.0.4-----2007年6月16日、公開。

    バージョンアップ(Ver.0.1→Ver.0.2)について

    変更点は次の通りです。
    • スタンプ枚数順参加者一覧を表示できるようにした。
    • 次にそのスタンプを取得できるまでの期間に、「日付が変わったら」を追加した。
    • 1回に取得できるスタンプの枚数を設定できるようにした。
    • スタンプごとに特別デーを設定できるようにした。
    • 期間終了までの日数が少なくなってきたら、残り時間が表示されるようにした。
    • アクセスした人に複数のメッセージを表示できるようにした。メッセージは参加者名やスタンプ枚数で指定して表示させることも可能。
    • 賞品と交換した人の記録を残すようにした。
    • 参加者名やIPで参加を禁止できるようにした。(設定ファイルで)
    また、これらの変更に伴い、管理用CGIも機能を増やしています。

    バージョンアップ(Ver.0.2→Ver.0.3)について

    スタンプ帳CGIの変更点は次の通りです。
    • スタンプの最終取得日時を別ファイルに記入するようにした。そのためスタンプを消費しても、取得禁止期間等が有効になった。
    • 取得したスタンプの種類数を参加者一覧に表示するようにした。
    • 取得したスタンプの種類が一定数を超えると、メッセージが表示されるようにした。(メッセージは設定ファイルで設定。)
    • 賞品獲得者が感想を送信した後の画面を、設定ファイルで設定できるようにした。
    スタンプ帳管理用CGIの変更点は次の通りです。(今回は、管理用CGIの変更が主になりました。)
    • スタンプの最終取得日時を表示・削除できるようにした。
    • 参加者データ編集で、スタンプ数を増やすときにスタンプコードを自由に指定できるようにした。
    • 取得したスタンプの種類が一定数を超えた場合のメッセージの表示確認ができるようにした。
    • 賞品獲得者が感想を送信した後の画面の表示確認ができるようにした。
    • 賞品獲得者のリストを一括で削除やDLできるようにした。
    • その他、何箇所かの修正。(一部、サンプルのままのところがありましたので。)

    バージョンアップ(Ver.0.3→Ver.0.4)について

    バージョンアップというほど、違いは大きくないのですが、変更点は次の通りです。
    • スタンプの枚数制限ができるようにした。
    • スタンプを1度きりしか取得できない設定を可能にした。
    • 賞品交換時に送信されたメッセージを、メールで管理者に送信できるようにした。
    • 参加者に表示されるメッセージで、複数の記事がある場合、新しい記事が上に表示されるようにした。
    • スタンプ帳画面の上部・下部のHOMEや参加者名簿、スタンプ帳へのリンク部分を、リスト表示にした。
    これらの変更に伴い、管理用CGIの機能も追加しています。

    これからの予定

    今後は、スタンプが1枚ずつしか取れないスタンプラリー用CGIと、1種類のスタンプを集めてポイントを貯めていくポイントカードCGIと、2つのものに分けて作っていく予定です。
    ・・・と言いつつ、どちらも作らずにスタンプ帳をバージョンアップしてしまいました(^^;)
    スタンプラリー用CGIは少しずつ作成中。
    スタンプ帳は、枚数制限をなくすことを考えてます。これはデータ形式の変更も伴うので、連携CGIも変更しなくてはならず、ちょっと大掛かり・・・。
    今回のバージョンアップはあまり変更がなかったので、枚数制限なしバージョンと一緒にしてのバージョンアップでもいいかなと思ったのですが、リクエストがあったので、先にVer.0.4として公開することにしました。

    アドバイス

    サンプルと同じように、stamps.cgiの画面上部や下部からジャンケンなどの各種連携CGIへリンクしたい場合、stamps.cgiスクリプトの一番下、578〜580行目、591〜593行目あたりを変更します。
    普通のHTMLと同様に書くことができます。
    例↓
    <div class="homestyle">
    <li><a href="$settei::home">HOME</a>
    <li><a href="$settei::cgi">$settei::title</a>
    <li><a href="$settei::cgi?mode=ranking">参加者一覧</a>
    <li><a href="janken.cgi">ジャンケン</a>
    <li><a href="numbers.cgi">Numbers!</a>
    </div>
    
    赤字部分が挿入した分です。
    (_HTML_だけの行は変更しないこと。コメントやスペースなども不可。)

    アドバイス 2

    スタンプ帳のスタンプは、<a href="stamps.cgi?stamp=スタンプコード">スタンプ画像</a>となっていて、クリックするとスタンプを取得できます。
    ところがこの仕組みとスタンプ名がわかってしまうと、スタンプ画像を探してクリックしなくとも、直接アドレスに「http://***URL***/stamps.cgi?stamp=スタンプコード」と入力することでスタンプが取得できてしまいます。
    スタンプコードは簡単に推測されないような名前にしてください。
    また、どんなに推測されにくいスタンプコードだとしても、一度スタンプコードがわかってしまうと、次はそのアドレスをお気に入りにでも登録しておけば意味はありません。
    これを防ぐための方法をいくつか紹介しておきます。でも絶対に防げる方法というわけではないので、ご了承ください。

  • 設定ファイルの$refferを設定する。
    設定した文字列で始まるURLから以外からのアクセスは許可しないので、直接のアクセスを防ぐことができます。
    ただし上手く機能せず、スタンプ画像をクリックしたのに、「アクセスは認められていません」と表示される場合があります。
    (ブラウザやウィルスチェックソフトで、参照元(リファラ)情報を遮断する設定になっているものがあるので。)
  • アドレス欄にスタンプコードが表示されないようにする。
    次のようにすれば、アドレス欄にスタンプコードは表示されません。
    ↓サンプルです。
    ↓これはその部分のHTMLソース。
    <form action="http://***URL***/stamps.cgi" method="post">
    <input type="hidden" name="stamp" value="スタンプコード">
    <input type="image" src="スタンプ画像ファイル">
    </form>
    
    ただし、このHTMLのソースを見られてしまうとスタンプコードはわかりますので、同じことです。
    HTMLソースを見せないようにする方法はありません、が、見られにくくする or 見てもわかりにくくすることはできます。詳細はコチラ→HTMLソースをわかりにくくする方法
  • 感想・他

    よかったら、感想や要望をください。参考にします。

    一言フォームです、これでは足りない場合・返事が必要な場合は、みさお宛私書箱へお書き下さい。

    もどる