以下の3つ条件を満たす携帯電話のクイズシステム(CGIまたはPHP)を探しています。


1.携帯電話から解答・問題作成ができる。
2.解答は、2択・3択・4択などの選択問題
3.解答後は、正解・不正解の表示のあと、解説が表示される。

1.2を満たすクイズシステムとして「QUIZ4-i」(http://www.cj-c.com/cgi_s/qi.htm)があり、利用しようと思いましたが、解答後の解説が表示されるものを探しています。または、「QUIZ4-i」をカスタマイズできる方を探しています。よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/06/21 10:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:shintabo No.1

回答回数45ベストアンサー獲得回数10

ポイント35pt

# DUMMY

# http://modperlis.bounceme.net

# 1.qq.datの正解番号の後ろに「解説<>」を追加

# 2.解説読み込み

#

# [まるつけ]

#

sub m_ {

.

.

.

($mondai,$a,$b,$c,$d,$ok,$exp)=split(/<>/,$LINE[$r]);

.

.

.

# 3.解説表示

#

# [問題表示]

#

sub q_ {

.

.

.

$html.= "$to-○$oa/×$ng<hr>\n";

$html.= "$exp<hr>\n";

.

.

}

# ちなみに、著作権とかダイジョブでしょうか?

# 3.改造しての配布や2次配布は著作権を削除しない限り自由です。

# とは、なっていますが、メールぐらいはした方がいいかもしれません

id:hiro_tt55

shintabo さんありがとうございます。

作者さんへは連絡をしておきます。また、問題を登録するときに解説を入力してもらいたいと思っており、それをどのように記述すればできるようになるかも教えていただけませんでしょうか?よろしくお願いします。

2008/06/14 12:57:15
id:shintabo No.2

回答回数45ベストアンサー獲得回数10

ポイント35pt

# DUMMY URL?

# http://modperlis.bounceme.net/

# かなり即興ですが・・・

# diffの見方は知ってますか??

# *************** を区切りに「qi.cgi.org(元CGI)」と「qi.cgi(追加したCGI)」が

# ならんでいます

# 「!」は修正で、「+」が追加した箇所になります

# あとは、行数を見つつ、変更してみてください

diff -cw qi.cgi.org qi.cgi

*** qi.cgi.org 2008-06-14 17:22:22.000000000 +0900

--- qi.cgi 2008-06-14 17:32:16.000000000 +0900

***************

*** 168,173 ****

--- 168,174 ----

$oa= $FORM{'oa'};

$ng= $FORM{'ng'};

$to= $FORM{'to'};

+ $exp= $FORM{'exp'};

$nu= $FORM{'nu'};

$r = $FORM{'r'};

$t = $FORM{'t'};

***************

*** 187,193 ****

if($ok==1){$ans.=$a;}elsif($ok==2){$ans.=$b;}elsif($ok==3){$ans.=$c;}else{$ans.=$d;}

if($maru==1){$m="○";}elsif($maru==0){$m="×";}elsif($maru==2){$m="時間切れ";}

if($Ans_p){$ans="";}else{$ans.="<br>";}

! $ans_h="<hr>$to問目/$m<br>$ans(回答時間/$rim秒)\n";

$html.= "$to-○$oa/×$ng<hr>\n";

_M_

}

--- 188,194 ----

if($ok==1){$ans.=$a;}elsif($ok==2){$ans.=$b;}elsif($ok==3){$ans.=$c;}else{$ans.=$d;}

if($maru==1){$m="○";}elsif($maru==0){$m="×";}elsif($maru==2){$m="時間切れ";}

if($Ans_p){$ans="";}else{$ans.="<br>";}

! $ans_h="<hr>$to問目/$m<br>$ans$exp<br>(回答時間/$rim秒)\n";

$html.= "$to-○$oa/×$ng<hr>\n";

_M_

}

***************

*** 234,240 ****

open(LOG,"$log[0]") || &er_("Can't open $log[0]");

@LINE = <LOG>;

close(LOG);

! ($mondai,$a,$b,$c,$d,$ok)=split(/<>/,$LINE[$r]);

$ENV{'TZ'} = "JST-9";

($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time);

($fun,$byou)=split(/:/,$t);

--- 235,241 ----

open(LOG,"$log[0]") || &er_("Can't open $log[0]");

@LINE = <LOG>;

close(LOG);

! ($mondai,$a,$b,$c,$d,$ok,$exp)=split(/<>/,$LINE[$r]);

$ENV{'TZ'} = "JST-9";

($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time);

($fun,$byou)=split(/:/,$t);

***************

*** 414,419 ****

--- 415,421 ----

<input type=radio name=oa value=3>3<br>

<input type=radio name=oa value=4>4<br>

<br>

+ <input type=text name=exp size=16 maxlength=$max_qq><br>

もう一度<br>見なおそう!<br>

<input type=submit value=" 登録 ">

</form>

***************

*** 431,441 ****

--- 433,445 ----

if($ba eq ""){ &er_("答え2が未記入!"); }

if($ca eq ""){ &er_("答え3が未記入!"); }

if($da eq ""){ &er_("答え4が未記入!"); }

+ if($exp eq ""){ &er_("解説が未記入!"); }

if(length($to) > $max_qq){ &er_("問題がながすぎ!"); }

if(length($aa) > $max_qa){ &er_("答え1がながすぎ!"); }

if(length($ba) > $max_qa){ &er_("答え2がながすぎ!"); }

if(length($ca) > $max_qa){ &er_("答え3がながすぎ!"); }

if(length($da) > $max_qa){ &er_("答え4がながすぎ!"); }

+ if(length($exp) > $max_qq){ &er_("解説がながすぎ!"); }

open(DB,"$log[0]") || &er_("Can't open $log[0]");

@LOGS = <DB>;

close(DB);

***************

*** 446,452 ****

$size=@LOGS;

if($size >= $max_q){&er_("問題が限度数の$max_q問あります!");}

open(LOG,">>$log[0]") || &er_("Can't write $log[0]");

! print LOG "$to<>$aa<>$ba<>$ca<>$da<>$oa<>\n";

close(LOG);

&hed_;

if($oa==1){$ans=$aa;}elsif($oa==2){$ans=$ba;}elsif($oa==3){$ans=$ca;}else{$ans=$da;}

--- 450,456 ----

$size=@LOGS;

if($size >= $max_q){&er_("問題が限度数の$max_q問あります!");}

open(LOG,">>$log[0]") || &er_("Can't write $log[0]");

! print LOG "$to<>$aa<>$ba<>$ca<>$da<>$oa<>$exp<>\n";

close(LOG);

&hed_;

if($oa==1){$ans=$aa;}elsif($oa==2){$ans=$ba;}elsif($oa==3){$ans=$ca;}else{$ans=$da;}

***************

*** 619,626 ****

foreach (0..$#LINE){

$OFF=0; $N=$_;

foreach $d (@d_){if($N eq $d){$OFF=1;}}

! ($Q,$A,$B,$C,$D,$Ans) = split(/<>/,$LINE[$_]);

! $LINE[$N]="$Q<>$A<>$B<>$C<>$D<>$Ans<>\n";

if($OFF){next;}

push(@New,"$LINE[$N]");

}

--- 623,630 ----

foreach (0..$#LINE){

$OFF=0; $N=$_;

foreach $d (@d_){if($N eq $d){$OFF=1;}}

! ($Q,$A,$B,$C,$D,$Ans,$Exp) = split(/<>/,$LINE[$_]);

! $LINE[$N]="$Q<>$A<>$B<>$C<>$D<>$Ans<>$Exp\n";

if($OFF){next;}

push(@New,"$LINE[$N]");

}

***************

*** 646,653 ****

<input type=submit value="削除"><br>

_AD_

foreach ($page .. $page_end) {

! ($Q,$A,$B,$C,$D,$Ans) = split(/<>/,$LINE[$_]);

! $html.="<hr><input type=checkbox name=d value=$_>/$Q<br>1.$A<br>2.$B<br>3.$C<br>4.$D<br>A.$Ans\n";

}

$html.="<br><input type=submit value=\"削除\"><br></form>\n";

$a=0;

--- 650,657 ----

<input type=submit value="削除"><br>

_AD_

foreach ($page .. $page_end) {

! ($Q,$A,$B,$C,$D,$Ans,$Exp) = split(/<>/,$LINE[$_]);

! $html.="<hr><input type=checkbox name=d value=$_>/$Q<br>1.$A<br>2.$B<br>3.$C<br>4.$D<br>A.$Ans<br>E.$Exp\n";

}

$html.="<br><input type=submit value=\"削除\"><br></form>\n";

$a=0;

# では、よいperlライフを・・・

# shinta@perler

# My Perl Page is http://modperlis.bounceme.net

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません