[07105]

CGIプログラムを、作ってみました.

6周年記念の贈呈品の申込方法として、従来のようなメール申込では面白味が少ないので、少し趣向を変えてみようと思い、専用の「申込ボード」による方法を考えました。

(昨年までの申込数の動向から見て、作っても無駄かな?とは思いつつも、)プログラム作成・改造自体が愉しくて、随分のめり込んでしまいました。

プログラムは、「一言板」用のものを改造したのですが、思った以上に大幅な変更が必要でした。
(我流の継ぎ接ぎ細工で、プログラムに流麗さが無いのが、自分で判るから悔しい!でも、一応は動くから不思議?)
−−−−−−−−−−−−−−−−−−−−−−−−−
プログラムの主仕様.
まず、“2回申込み&申込数÷2の番号を当選とする”方式は、人間が目算でやれば事は簡単なのですが、敢えて自動計算で“リアルタイムの紅帯自動シフト”をやりました。
(この「1/2抽選法」は、微作為抽選方法?として大変優れている、と自賛中!d(^^;? 通常の宝籤のようにまったくの神頼みでもなく、不自由さはあるが多少の駆け引きも出来るので)

次に、“仮名・偽名でも、申込者の同一性を確保する”方法として、「郵便番号(ハイフン抜き)」を用いる事とこれを即座に暗号化して、誰も解読出来ないようにしました。(左図の<クリック>で)

このデータは暗号化したままで、2回目申込みの注意喚起にも使いました。(実は、書き込んだ後、ブラウザ側でそのまま“画面更新”をすると自動的に2度書きになる事がある、のを防ぐのにも有効)
当選が決まれば、このデータと後で連絡して貰う「郵便番号」とを照合して、本人確認が出来るってわけ。

主な処理例.
プログラムの組み立てで難しかったのは、“どうしますか?・・・” と申込者に尋ねている間に、他の申込者からの申込みが入って来たら、そのままだと(現在サーバで保持している)データが書き換わってしまうので、“今の申込データをどうするか?”でした。

結局、一先ずファイルに登録しておき、その行番号を控えておいて、中止(削除)する場合はそれを頼りに該当行を探す事にしました。
これなら、間に別の申込みがあっても、安全に処理出来ます。

(そうした割り込みが無ければ、プログラムはもう少し簡素になるんですが...多分避け切れないので、この方式にしました。左/上図と、それの<クリック>)

多少の苦労.
通常のプログラムと違って、CGIプログラムは“直接対話型”(?)ではない処が、一番苦しいですね。
ブラウザを使っている側(申込者)から反応は、>ブラウザ<>通信線<>サーバ<を経由して、間接的にしか知る事が出来ないのですから。

どのキーを押したか?などは、一々送信して貰わないと分からないし、画面を書き換えるにしても、部分的には制御出来ないから、作り変えた全画面をブラウザ側に再送信しないといけないわけです。

しかも、デバッグの時など、申込者やブラウザを替えてみたりなんかすると、刻々と変わる自分のポジションをちゃんと弁えてないと、頭の中がごちゃごちゃになって、“今、誰が、何してるんだ?”状態になります。orz

でも、思ったように動くと結構嬉しいし、睡眠不足になって眠かったけど、面白かった!...さて、肝心の申込みの方は、どうなんでしょうか。(^^;;?

[表紙頁]へ  関連記事の目次へ  [一言板]へ