HOME
スタンプ帳Ver.0.4用参加人数制限方法(改造方法説明)
スタンプ帳に参加する人数を制限する方法です。
設定した人数を超えると、新たに参加しようとしても、「参加人数を超えていますので、参加できません。」と表示されます。
期間限定の場合は期間中、登録者の名前を名簿にずっと保存しますので、参加人数を制限する場合は期間と制限する上限をよく考えて設定してください。
賞品交換所にある「自己登録削除CGI」を使用して、長くアクセスできない人、もう参加するつもりのない人には自分で名簿から名前を削除してもらうのもいいと思います。

まず、改造にあたっての注意ですが、

  • 現在配布しているものについて、説明しています。
    スクリプトstamps.cgiの最初の方に最終更新日時を示しています。その最終更新日時が2007/6/15であることを確認してください。
    また、ご自身で手を加えている場合は、説明の行数等が違ってきますので、それをふまえて説明をお読み下さい。
  • 記述している行数は論理改行です。
    テキストエディタでは、行幅が決まっていると自動的に折り返され、それも1行と数える設定になっているものがありますが、それでは人によって行数が違って説明しにくい。 ここでは論理改行、つまり改行マークがあるところまでを1行と数えた行数で説明します。
    テキストエディタの環境設定で、論理改行で行数表示する設定があると思いますので、行数表示を論理改行でするようにしてください。
    私の使っている秀丸エディタなら、メニューバーの「その他」→「ファイルタイプ別の設定」→「行番号の計算方法」で、「エディタ的(改行だけを数える)」にチェックです。
  • 必ず、手を加えない状態で動作していることを確認してから、改造してください。
    動作確認せずにいきなり改造した場合、エラーになっても原因がわからなくなります。そうなると設置のアドバイスもできません。
    必ず一度はサーバにアップして動作確認をしてから改造してください。
    また、お使いのパソコン上でCGIが動くよう設定し、ローカルでテストしてからサーバへアップされることをお勧めします。
    あくまでご自分の責任で行ってください。
    "一つないだけでエラーになりますので、タイプミスに注意して、慎重に行ってください。コピー&ペーストするといいです。
  • 説明をご覧になるときのヒント。
    画面幅の関係で折り返して表示されていますが、改行マークのあるところが改行の目印です。
    スクリプトを抜粋して表示します。
    手を加える前

    手を加えた後
    のようにして表示しますので、参考にしてください。
  • それでは改造を方法を説明していきます。
    まず、stamps.cgiの326行目の次に、新しい1行を挿入し、次のようにします。
    (326〜328行目を表示します。)

    } 改行マーク
    ($stampflag>1) && &common::write_file(\@newdatas,$settei::datafile,"参加者名簿",$settei::lockdir); 改行マーク
    if ($nameflag==0 && $^T<$kigen){ 改行マーク
    } 改行マーク
    ($sankamax && $sankamax<=scalar(@datas) && $nameflag==0) && &message("申\し訳ありません!<br>参加人数を制限しています。既に定員の$sankamax人を越えていますので、$c_nameさんには参加いただくことができません。",$settei::lockdir); 改行マーク
    ($stampflag>1) && &common::write_file(\@newdatas,$settei::datafile,"参加者名簿",$settei::lockdir); 改行マーク
    if ($nameflag==0 && $^T<$kigen){ 改行マーク

    次に、stamps.cgiの15行目の次ぐらいに、次の1行を挿入して下さい。
    これが参加人数の上限値になりますので、数値はスタンプ帳実施の期間や参加人数予想にあわせて変更してください。

    my $sankamax = 30;     #半角数字で。参加人数の上限値。 改行マーク

    以上で参加人数を制限することができるようになります。
    サーバにアップロードして、以前のstamps.cgiを上書きしてください。

    スタンプ帳CGIサンプルへ

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