HOME > CGI > うぅむ・・・


【動作サンプル】 ※書き込みは出来ません

■特徴&機能説明
  • 単なるクイズCGIです。
  • 問題&回答の設定はブラウザ上から作成出来ます。(複数の問題登録が可能…1つの問題に対しての問題数は制限無し)
    • 問題の作成及び更新等の管理は「管理人のみ」となります。
    • 回答結果のログもブラウザ上から削除可能。※修正機能は無し
  • 回答パターンは以下の3通り。
    • 「答え」を入力させるパターン
    • 「答え」を選択させるパターン(複数回答候補から1つ選択させる)
    • 「答え」を選択させるパターン(複数回答候補から複数選択させる(AND…全て正解を答えないと不正解))
    • 「答え」を選択させるパターン(複数回答候補から複数選択させる(OR…正解のどれか1つ答えると正解))
  • ランキング機能
    • 同じ名前+ホスト情報でランキングを管理します。
  • 携帯対応
  • 不正防止機能付き。「ブラウザの戻る」及び「ブラウザのページ更新(本当はエラーにしたくなかったんだけど(^_^;)」は
    エラーとしてその場でゲーム終了となります。


■初期画面イメージ
▼PCアクセス時

▼携帯アクセス時


■設置方法  ※重要な部分のみ説明します

■u-mu.cgiをエディタで開いて設定を行います。

#!/usr/local/bin/perl
 (Perlへのパスを指定。※プロバイダによって異なりますので不明な場合はプロバイダーへ質問してね)



$logfile = './u-mu.txt';
 (プレイヤーのゲーム中の情報を管理するファイルです)…特に修正する必要はありません
 ※問題No+名前+リモートホスト単位で1件データが作成されます。
   よって、1台のパソコンで同時にブラウザを開いて同じ問題+名前でゲームしたとしても
   片方の情報しか管理出来ませんので、2回目にゲーム開始した側は「不正行為」をしたと
   判断されます。
 ※ゲーム途中で違うページを表示したりブラウザを閉じると、同ファイルにデータが残ってしまいますが
   ゲーム開始時刻から6時間以上経過したら自動的にそのデータを削除します。

$q_cnt = 1;
#問題を選択するプルダウン表示件数(一度に表示する件数)
▼$q_cnt=1の場合
▼$q_cnt=5の場合

$Qcount = 10 ; #PC時
$Qcount_k = 3 ; #携帯時
#1つの問題Noに対しての1画面で入力する問題数を指定。※1つの問題での問題数の限度はありません。

$QComm = 1;
#問題に対する「回答」について『備考』を入力する欄は必要?(0:不要 1:必要)

#PC時
$q_textflg = 1; #「問題」入力部は?(0:1行テキストボックス 1:複数行テキストボックス)
$q_col = 60 ; #「問題」入力部の文字数
$q_row = 3 ; #「問題」入力部の行数 ※複数行テキストボックス時のみ
$b_textflg = 1; #$QComm=1(備考有)の場合、「備考」入力部は?(0:1行テキストボックス 1:複数行テキストボックス)
$b_col = 60 ; #$QComm=1(備考有)の場合、「備考」入力部の文字数
$b_row = 2 ; #$QComm=1(備考有)の場合、「備考」入力部の行数 ※複数行テキストボックス時のみ
$b_width = '50%'; #$QComm=1(備考有)の場合、「備考」を表示する際のテーブル幅

#携帯時
$q_textflg_k = 1; #「問題」入力部は?(0:1行テキストボックス 1:複数行テキストボックス)
$b_textflg_k = 0; #$QComm=1(備考有)の場合、「備考」入力部は?(0:1行テキストボックス 1:複数行テキストボックス)

$ansdisp = 2;
#問題回答後、次の問題が表示された際に、前の問題の回答が正解か不正解かを表示する?
#0:表示しない
#1:表示する(正解か不正解かだけを表示)
#2:表示する(回答も表示する)


#初期画面の「ランキング表示」のプルダウン内に「最終更新日」を表示する?(0:no 1:yes)
$upflg = 1;

#問題毎に「名前」が重複したらエラーとする?(0:no 1:yes)
#$dup=1の場合、重複の判断を行う為、画面上に「パスワード」が追加されます(必須)
#同じ名前でパスワードが違う場合はエラーとなります。
$dup = 1

■名前の重複はエラー($dup=1)の場合
初めて使用した時の「名前」と「パスワード」が記録され、同じ名前で2回目以降は「初回入力時のパスワード」でなければエラーとなります。

■名前の重複はエラーにしない($dup=0)の場合
他人が自分と同じ「名前」を使用してもエラーとならないので、自分の記録が上書きされてしまいます。



$HEAD_COMMENT
#初期画面上部に何か表示したい文章があれば記述。(PC)

$HEAD_COMMENT_K
#初期画面上部に何か表示したい文章があれば記述。(携帯)

#▼入力フォームの文字
$lbl_ques = '問題 -->'; #初期画面の「問題 -->」に表示する文字(PC)
$lbl_ques_k = '▼問題<br />'; #初期画面の「問題 -->」に表示する文字(携帯)
$lbl_name = 'お名前 -->'; #初期画面の「お名前 -->」に表示する文字(PC)
$lbl_name_k = '▼お名前<br />'; #初期画面の「お名前 -->」に表示する文字(携帯)
$lbl_rank = 'ランキング表\示'; #「ランキング表示」に表示する文字(PC)
$lbl_rank_k = 'ランキング表\示'; #「ランキング表示」に表示する文字(携帯)
$lbl_disp_k = '選択'; #初期画面の「問題を選択」に表示する文字(携帯のみ)
$lbl_ok = ' -- OK --'; #回答中画面の回答用ボタンに表示する文字(PC)
$lbl_ok_k = ' -- OK --'; #CC3300

#投稿時に管理者にメール送信する場合、sendmailのパスを指定
#プロバがsendmailに対応していなければなりません。詳細はプロバに質問して下さいね。
#※使用しない(又は、できない)場合は、$sendmail = "";のようにして下さい!!
$sendmail = "";

#メール送信先アドレス。(管理者のアドレス)…「@」の前には「\」を必ずつけてね。
「\」を付けないとInternalServererrorになるかも。
#(Sendmailを使わない場合は設定しても意味ありません)

$smail_address = "xxxxx@xxxx.com";

$smpcolor = '#FF0000'; #問題更新画面での例文内の強調表示される文字色
$kyocolor = '#00FF00'; #問題内で強調表示(文字の前後で"*")する場合の文字色

■各ファイルをサーバーへアップロードします。

ファイル名 説明 パーミッション 転送モード
u-mu.cgi 本体 755 アスキーモード
u-mu.txt ゲーム中の情報を管理するファイル 666 アスキーモード
logdir
(問題&ランキングファイル保存用フォルダ)
問題&ランキングファイルを保存するフォルダ 777  
Q_nnn.ini 
(問題ファイル。 nnnには問題No.が入ります)
(スクリプト側で自動作成します)
問題ファイル 666 アスキーモード
R_nnn.txt
(ランキング管理ファイル。 nnnには問題No.が入ります)
(スクリプト側で自動作成します)
ランキングファイル 666 アスキーモード
jcode.pl 日本語コード変換ライブラリ 755 アスキーモード

※パーミッションはプロバイダーによって上記以外の設定となる事がありますので、
設置出来ない場合は、一度プロバイダーのサイトなりで調査してみて下さい。

※自動作成するファイルは、サーバーによって自動作成出来ない場合があるかもしれませんので
もし問題登録時にエラーとなる場合は、各自テキストエディタで空の「Q_001.ini」、「R_0001.txt」等
を作成しサーバーへアップロードしてください。

■問題&ランキングファイル保存用フォルダ($logdir)をサーバーに作成してください。
 パーミッションは777にして下さい。(プロバイダーによっては異なるかもしれませんので
 不明な場合はプロバイダーに確認してください)


※パーミッションはサーバー管理者から指定されている値で設定して下さい。


■問題の登録方法
  • 初期画面下部にある「問題No.」に番号を入力(まだ登録していない番号を入力)


  • 「問題のタイトル」と「問題に対する説明文」を入力 ※「問題のタイトル」は必須


  • 問題登録:「答え」を入力させるパターン


    ↓「備考欄」は、回答表示有り($ansdisp=2(回答も表示する))の場合、以下のように表示されます


    又、強調したい文字がある場合は、文字の前後に「*」を入力すると以下のようになります。
    「*」の指定は1問につき1回のみです
    ex. 【*盲点*】


  • 「答え」を選択させるパターン(複数回答候補から1つ選択させる)

    ◎「回答候補」…回答として表示する候補を入力して下さい。
    ※回答候補を複数する場合は半角カンマで区切って下さい。
    ex. りんご,トマト,バナナ

    ◎「正解」
    ・「回答候補」を入力した場合、「回答候補」で指定した候補の内、正解となる番号(回答候補の何番目か)を入力して下さい。
    ・「回答候補」を省略した場合、正解となる文字を入力して下さい。
    ※指定例:「回答候補入力時」→《赤、青、黄、緑、白》で、正解が「赤、青、緑」の場合「正解」には【1,2,4】と入力して下さい
    ※複数正解の場合は、番号を半角カンマで区切って下さい。 例:1,2,5
    ※指定例:「回答候補省略時」→正解欄には【これが正解です】等と文字を入力



  • ▼「答え」を選択させるパターン(複数回答候補から複数選択させる(AND…全て正解を答えないと不正解))

    ◎「AND/OR」は「正解」が複数回答有る場合、全て一致で正解とするか一部正解で正解とするかの指定です




  • ▼「答え」を選択させるパターン(複数回答候補から複数選択させる(OR…正解のどれか1つ答えると正解))


  • 画面内の問題を入力し終えたら「登録ボタン」を押下する事によって、そのページの問題が作成されます。


  • 問題が登録されました。 引き続き問題を登録したい場合は「続きの問題を登録するボタン」を押下してください。
    続きの問題を登録出来ます。 
    ※問題修正時も同じような手順となります。1画面毎に更新していきますので、修正したい問題が3画面目に存在している
    場合は、3画面目まで1画面ずつ更新していくことになります。




  • 登録した問題が表示されました。





■ダウンロード ※ダウンロード後「Lhasa」等の解凍ツールで解凍して下さい。

u-mu.lzh



■更新記録

◆2007.07.24
 ・「最終更新日表示設定項目($upflg)」が機能していませんでした
 ・「回答候補未設定で正解複数回答有」に対応

◆2007.07.19
 … Ver0.5正式版配布開始

◆2007.07.13
 … Ver0.5 β3版配布開始
    ・名前重複チェック変更
    ・パスワード暗号化
    ・問題/ランキングファイルの拡張子を設定可能に

◆2007.07.12
 … Ver0.5 β2版配布開始 (名前重複チェック指定…$dupの追加)

◆2007.07.10
    … Ver0.5 β版配布開始


このページのTOPへ