質問編集履歴

5

満点ではなくランキングに登録される点数を獲ると止まるようです。

2016/07/25 07:06

投稿

oshibuchiryo5
oshibuchiryo5

スコア11

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- 問題全問正解するとなぜか画面がストップしてしまします。
15
+ ランキングに登録される点数るとなぜか画面がストップしてしまします。
16
16
 
17
17
  どなたか原因を教えていただけないでしょうか。
18
18
 

4

たびたびすみません。文字数がオーバーしてしまうのですが,どうしたらよいでしょうか。

2016/07/25 07:06

投稿

oshibuchiryo5
oshibuchiryo5

スコア11

test CHANGED
File without changes
test CHANGED
@@ -504,27 +504,25 @@
504
504
 
505
505
  sub output_js{
506
506
 
507
+ #
508
+
509
+
510
+
511
+ print "Content-Type: text/javascript\n\n";
512
+
513
+ # 送信
514
+
507
- # ヘッ``````ここに言語を入力
515
+ print "$_[0]";
508
-
516
+
509
- ここに言語を入力
517
+ exit;
518
+
519
+ }
510
520
 
511
521
  ```
512
522
 
513
- コード
523
+
514
-
515
- ```ダ
524
+
516
-
517
- print "Content-Type: text/javascript\n\n";
525
+
518
-
519
- # 送信
520
-
521
- print "$_[0]";
522
-
523
- exit;
524
-
525
- }
526
-
527
- ```
528
526
 
529
527
 
530
528
 

3

大変失礼いたしました。

2016/07/25 04:44

投稿

oshibuchiryo5
oshibuchiryo5

スコア11

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  # ------------ 設定ここまで ------------ #
54
54
 
55
- '''
55
+ ```
56
56
 
57
57
  my %in = &read_param;
58
58
 
@@ -504,7 +504,15 @@
504
504
 
505
505
  sub output_js{
506
506
 
507
+ # ヘッ``````ここに言語を入力
508
+
509
+ ここに言語を入力
510
+
511
+ ```
512
+
513
+ コード
514
+
507
- # ヘッ
515
+ ```
508
516
 
509
517
  print "Content-Type: text/javascript\n\n";
510
518
 
@@ -516,7 +524,7 @@
516
524
 
517
525
  }
518
526
 
519
- '''
527
+ ```
520
528
 
521
529
 
522
530
 

2

コードを囲んでみたんですが,これでよろしいでしょうか。

2016/07/25 04:28

投稿

oshibuchiryo5
oshibuchiryo5

スコア11

test CHANGED
File without changes
test CHANGED
@@ -20,349 +20,503 @@
20
20
 
21
21
  ###該当のソースコード
22
22
 
23
- javascript
24
-
25
- /*------------------------------------------------------------------------
26
-
27
- * Quiz Generator Script Ranking+ 設定ファイル
28
-
29
- * Copyright 2012 Sawa's Factory
30
-
31
- * http://sawa-s.com/quiz-generator-ranking.html
32
-
33
- ------------------------------------------------------------------------*/
34
-
35
-
36
-
37
- /*---------- オープニング&クイズ設定 ----------*/
38
-
39
- /* クイズボックスの横幅 縦幅*/
40
-
41
- var q_w=450; //横幅 px min=400
42
-
43
- var q_h=380; //縦幅 px 選択数の増減によって調整してください。3択:330 4択:380 5択:430
44
-
45
- /* タ */
46
-
47
- var q_title="4択クイズ";
48
-
49
- /* オープニングメッセージ ボタン */
50
-
51
- var opening_msg=[
52
-
53
- "のクイズは4択形式のクイズす。",
54
-
55
- "全部で10問あり、満点は100点です。",
56
-
57
- "あなたは何点取れるでしょうか?",
58
-
59
- "",
60
-
61
- "お名前(ハンドルネーム可)を入力してください。",
62
-
63
- "ランクインするとランキングに登録する事ができます。"
64
-
65
- ];
66
-
67
- var opening_start_button="START";
68
-
69
- /* 出題数 */
70
-
71
- var q_no=5;
72
-
73
- /* 出題順 0-昇順 1-ランダム */
74
-
75
- var q_rnd=0;
76
-
77
- /* 正解・不正解の表示 0-しない 1-する */
78
-
79
- var q_dsp=1;
80
-
81
- /* 正解・不正解を表示する場合、表示する秒数 */
82
-
83
- var q_dtime=2;
84
-
85
- /* 正解・不正解を表示する場合、サウンドを使用 0-しない 1-する */
86
-
87
- var q_sound=0;
88
-
89
- /* 制限時間(秒) 0-設定なし */
90
-
91
- var q_timer=0;
92
-
93
- /* 選択岐をシャッフル 0-しない 1-する */
94
-
95
- var q_sfl=1;
96
-
97
- /* 正解・不正解を表示する 画像ファイル(入れ替える場合のみ) 不正解画像,正解画像の順 */
98
-
99
- var img_file=["image/0a.png","image/1a.png"];
100
-
101
- /* サウンドを鳴らす場合のサウンドファイル (入れ替える場合のみ) 不正解サウンド,正解サウンドの順 */
102
-
103
- var sound_file=["sound/0.wav","sound/1.wav"];
104
-
105
-
106
-
107
- /*---------- 問 題 ----------*/
108
-
109
- var questions = [
110
-
111
- ["問題1", ["選択1-1", "選択1-2", "選択1-3", "選択1-4"], 1, 5]
112
-
113
- ,["問題2", ["選択2-1", "選択2-2", "選択2-3", "選択2-4"], 1, 6]
114
-
115
- ,["問題3", ["選択3-1", "選択3-2", "選択3-3", "選択3-4"], 1, 7]
116
-
117
- ,["問題4", ["選択4-1", "選択4-2", "選択4-3", "選択4-4"], 1, 8]
118
-
119
- ,["問題5", ["選択5-1", "選択5-2", "選択5-3", "選択5-4"], 1, 9]
120
-
121
- ,["問題6", ["選択6-1", "選択6-2", "選択6-3", "選択6-4"], 1, 10]
122
-
123
- ,["問題7", ["選択7-1", "選択7-2", "選択7-3", "選択7-4"], 1, 11]
124
-
125
- ,["問題8", ["選択8-1", "選択8-2", "選択8-3", "選択8-4"], 1, 12]
126
-
127
- ,["問題9", ["選択9-1", "選択9-2", "選択9-3", "選択9-4"], 1, 15]
128
-
129
- ,["問題10", ["選択10-1", "選択10-2", "選択10-3", "選択10-4"], 1, 20]
130
-
131
- ];
132
-
133
-
134
-
135
- /*---------- エンディング設定 ----------*/
136
-
137
- /* 一覧に登録する点数 これを0にするとクイズ参加者全員の得点を登録する。 */
138
-
139
- var quiz_clear = 80;
140
-
141
- /* 得点振り分けメッセージ*/
142
-
143
- var endings = [
144
-
145
- [100, [
146
-
147
- "<span class='msg_tokuten'> う~ん、お見事!!</span>"
148
-
149
- ,"<span class='msg_tokuten'> !name!!name_keishou! の得点は <strong>満点</strong>でした。</span>"
150
-
151
- ,"",
152
-
153
- ,"正解数は!seikai_num!問、正解率は!percent!%です。"
154
-
155
- ]]
156
-
157
- ,[80, [
158
-
159
- "<span class='msg_tokuten'>う~ん。さすがですね。</span>"
160
-
161
- ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
162
-
163
- ,""
164
-
165
- ,"正解数は!seikai_num!問、正解率は!percent!%です。"
166
-
167
- ,"再挑戦をお待ちしています。"
168
-
169
- ]]
170
-
171
- ,[50, [
172
-
173
- "<span class='msg_tokuten'>なかなかやりますね。</span>"
174
-
175
- ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
176
-
177
- ,""
178
-
179
- ,"正解数は!seikai_num!問、正解率は!percent!%です。"
180
-
181
- ,"再挑戦をお待ちしています。"
182
-
183
- ]]
184
-
185
- ,[30, [
186
-
187
- "<span class='msg_tokuten'>もうちょっとです。がんばりましょう</span>"
188
-
189
- ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
190
-
191
- ,""
192
-
193
- ,"正解数は!seikai_num!問、正解率は!percent!%です。"
194
-
195
- ,"再挑戦をお待ちしています。"
196
-
197
- ]]
198
-
199
- ,[0, [
200
-
201
- "<span class='msg_tokuten'>あれ、わざと間違えたのかな。</span>"
202
-
203
- ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
204
-
205
- ,""
206
-
207
- ,"正解数は!seikai_num!問、正解率は!percent!%です。"
208
-
209
- ,"再挑戦をお待ちしています。"
210
-
211
- ]]
212
-
213
- ];
214
-
215
- /* リスタートのボタン名 */
216
-
217
- var restart_button_name="RESTART";
218
-
219
- /*---------- 管理モード ----------*/
220
-
221
- var pw="0123";
222
-
223
-
224
-
225
- /*--------------- ここからCGI登録、一覧・ランキング表示に関する設定 ---------------/*
226
-
227
- /* JavaScriptでCGIを制御しております。
228
-
229
- 以下の設定をするだけでCGIへデータが渡されます。 */
230
-
231
-
232
-
233
- /* CGIファイルの場所と名前 CGIが別サーバーの場合はhttp://…から書く */
234
-
235
- var cgi_file="cgi/record.cgi";
236
-
237
-
238
-
239
- /* ---------- 名前入力関係の設定 ---------- */
240
-
241
- /* 名前の入力 0-匿名(省略)可 1-入力必須 */
242
-
243
- var name_input=0;
244
-
245
- /* 匿名の場合の名前 */
246
-
247
- var tokumei="匿名";
248
-
249
- /* 名前のあとの敬称 */
250
-
251
- var name_keishou="さん"
252
-
253
- /* 名前の最大文字数 */
254
-
255
- var name_length=6;
256
-
257
- /* クッキー保存期間 日数 */
258
-
259
- var cookieExpires=7;
260
-
261
- /* クッキーパス */
262
-
263
- var cookiePath="/";
264
-
265
-
266
-
267
- /* ---------- 最新のクイズ履歴一覧の設定 ---------- */
268
-
269
- /* 一覧に表示する人数 */
270
-
271
- var listing_num=20;
272
-
273
- /* 一覧の名称 */
274
-
275
- var listing_title="最新" + listing_num + "名の履歴一覧";
276
-
277
-
278
-
279
- /* ---------- ランキングの ---------- */
280
-
281
- /*ンキングをクリアするタ
282
-
283
- 0-クリアしない 1-月が変わったらクリアする 2-年が変わったらクリアする
284
-
285
- クイズ運用後に変更すると、クリアされてしまうので注意。 */
286
-
287
- var ranking_clear=1;
288
-
289
- /* ランキングに表示する人数 */
290
-
291
- var ranking_num=20;
292
-
293
- /* ランキングの名称 */
294
-
295
- var ranking_title="今月のランキング";
296
-
297
- /* コメントの入力 0-省略可 1-必須 */
298
-
299
- var ranking_comment=1;
300
-
301
- /* コメントの最大文字数 */
302
-
303
- var ranking_comment_length=12;
304
-
305
- /* ランクインした場合の登録メッセージ */
306
-
307
- var rankin_msg=[
308
-
309
- "!name!!name_keishou! の得点が <span style='color:red;font-weight:bold;font-size:16px;'>!rank!位</span> にランクインされました。",
310
-
311
- "コメント欄に感想等書いてくれると嬉しいです。",
312
-
313
- "",
314
-
315
- "ランキングに登録するには[登録]を、<br/>登録せず結果を見る場合は[結果表示]をクリックしてください。"
316
-
317
- ];
318
-
319
- /* 一覧及びランキングをクローズするボタン画像 */
320
-
321
- var lr_close_button="image/close_button.png";
322
-
323
-
324
-
325
- /* ---------- 一覧&ランキングに出力するソートキーの設定 ---------- */
326
-
327
- /* ソートキー */
328
-
329
- var sort_key="!tokuten!";
330
-
331
- /* 追加キー */
332
-
333
- var listing_add_key="!percent!";
334
-
335
- /* 一覧及びランキングに表示する名前 */
336
-
337
- var sort_key_name=new Array();
338
-
339
- sort_key_name['!tokuten!']="得点";
340
-
341
- sort_key_name['!seikai!']="正解点数";
342
-
343
- sort_key_name['!seikai_num!']="正解数";
344
-
345
- sort_key_name['!percent!']="正解率<br/>(%)";
346
-
347
-
348
-
349
- /* ---------- 一覧&ランキングの登録設定 ---------- */
350
-
351
- /* 匿名の場合、一覧及びランキングに登録 0-しない 1-する */
352
-
353
- var listing_tokumei=1;
354
-
355
- /* 匿名の場合、ランキングに登録 0-しない 1-する */
356
-
357
- var ranking_tokumei=0;
358
-
359
- /* 一覧に重複登録 0-許可する 1-許可しない */
360
-
361
- var listing_dupli=1;
362
-
363
- /* ランキングに重複登録 0-許可する 1-許可しない */
364
-
365
- var ranking_dupli=1;
23
+ css
24
+
25
+ #!/usr/local/bin/perl
26
+
27
+ #------------------------------------------------------------------------
28
+
29
+ # Quiz Generator Script Ranking+
30
+
31
+ # Copyright 2012 Sawa's Factory
32
+
33
+ # http://sawa-s.com/quiz-generator-ranking.html
34
+
35
+ #------------------------------------------------------------------------
36
+
37
+ use strict;
38
+
39
+ use lib "./lib";
40
+
41
+ use Jcode;
42
+
43
+
44
+
45
+ #一覧&ランキング&設定ファイルの指定
46
+
47
+ my $listing_file="data/listing.dat";
48
+
49
+ my $ranking_file="data/ranking.dat";
50
+
51
+ my $config_file="data/config.dat";
52
+
53
+ # ------------ 設定こま ------------ #
54
+
55
+ '''
56
+
57
+ my %in = &read_param;
58
+
59
+ my @rc_d=('none','month','year');
60
+
61
+ my @youbi = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
62
+
63
+ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
64
+
65
+ $year += 1900;
66
+
67
+ $mon += 1;
68
+
69
+ $mon = sprintf( "%02d", $mon );
70
+
71
+ $mday = sprintf( "%02d", $mday );
72
+
73
+ $hour = sprintf( "%02d", $hour );
74
+
75
+ $min = sprintf( "%02d", $min );
76
+
77
+ $sec = sprintf( "%02d", $sec );
78
+
79
+ my $date="$year/$mon/$mday";
80
+
81
+ my $time= "$hour:$min:$sec";
82
+
83
+ my @d_array =(0,$mon,$year);
84
+
85
+
86
+
87
+ if ($in{a} eq "lh"){&listing_html;}
88
+
89
+ if ($in{a} eq "rh"){&ranking_html;}
90
+
91
+ if ($in{a} eq "lr"){&listing_regist;}
92
+
93
+ if ($in{a} eq "rr"){&ranking_regist;}
94
+
95
+ if ($in{a} eq "lc"){&listing_clear;}
96
+
97
+ if ($in{a} eq "rc"){&ranking_clear;}
98
+
99
+ &output_js("alert('CGIエラー:不明な処理です');\n");
100
+
101
+ exit;
102
+
103
+
104
+
105
+ sub listing_html {
106
+
107
+ my $output_data="listing_data=[\n";
108
+
109
+ open(LTF,"$listing_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
110
+
111
+ my $i=0;
112
+
113
+ while (<LTF>) {
114
+
115
+ my ($host,$skey,$akey,$date,$time,$name) = split(/<>/);
116
+
117
+ if ($i > 0){$output_data .= ",";}
118
+
119
+ $output_data .= "[$skey,$akey,'$date','$time','$name']\n";
120
+
121
+ $i ++;
122
+
123
+ }
124
+
125
+ close(LTF);
126
+
127
+
128
+
129
+ $output_data .= "];\nquiz_listing_open();\n";
130
+
131
+ if ($i == 0){$output_data = "alert('一覧はまだ登録されていません。');\n";}
132
+
133
+ &output_js($output_data);
134
+
135
+ exit;
136
+
137
+ }
138
+
139
+
140
+
141
+ sub ranking_html {
142
+
143
+ my $output_data="ranking_data=[\n";
144
+
145
+ open(RKF,"$ranking_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
146
+
147
+ my $i=0;
148
+
149
+ while (<RKF>) {
150
+
151
+ my ($host,$skey,$date,$time,$name,$comment) = split(/<>/);
152
+
153
+ if ($i > 0){$output_data .= ",";}
154
+
155
+ $output_data .= "[$skey,'$date','$time','$name','$comment']\n";
156
+
157
+ $i ++;
158
+
159
+ }
160
+
161
+ close(RKF);
162
+
163
+ $output_data .= "];\nquiz_ranking_open();\n";
164
+
165
+ if ($i == 0){$output_data = "alert('ランキングはまだ登録されていません');\n";}
166
+
167
+ &output_js($output_data);
168
+
169
+ exit;
170
+
171
+ }
172
+
173
+
174
+
175
+ sub listing_clear {
176
+
177
+ open(LTF,">$listing_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
178
+
179
+ print LTF "";
180
+
181
+ close(LTF);
182
+
183
+ if ($in{a} eq "lc"){&output_js("alert('一覧ファイルをクリアしました。');\n");}
184
+
185
+ }
186
+
187
+
188
+
189
+ sub ranking_clear {
190
+
191
+ open(RKF,">$ranking_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
192
+
193
+ print RKF "";
194
+
195
+ close(RKF);
196
+
197
+ open(CFF,">$config_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
198
+
199
+ print CFF "$rc_d[$in{rc}]=$d_array[$in{rc}]";
200
+
201
+ close(CFF);
202
+
203
+ if ($in{a} eq "rc"){&output_js("alert('ランキングファイルをクリアました。');\n");}
204
+
205
+ }
206
+
207
+
208
+
209
+ sub listing_regist {
210
+
211
+ #ランキングクリアチェック
212
+
213
+ open(CFF,"$config_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
214
+
215
+ my $config = <CFF>;
216
+
217
+ close(CFF);
218
+
219
+ if ($config eq ""){$config="none=0";}
220
+
221
+ my ($key,$val) = split(/=/,$config);
222
+
223
+
224
+
225
+ my $r_clear=0;
226
+
227
+ if ($key ne $rc_d[$in{rc}]){$r_clear=1;}
228
+
229
+ else {
230
+
231
+ if ($val ne $d_array[$in{rc}]){$r_clear=1;}
232
+
233
+ }
234
+
235
+ if ($r_clear == 1){&ranking_clear;}
236
+
237
+ #listing登録処理
238
+
239
+ Jcode::convert(\$in{n}, 'sjis');
240
+
241
+ my $host = &get_host;
242
+
243
+ open(LTF,"$listing_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
244
+
245
+ my @lines=<LTF>;
246
+
247
+ close(LTF);
248
+
249
+ my $addline="$host<>$in{sk}<>$in{ak}<>$date<>$time<>$in{n}<>\n";
250
+
251
+ #重複しない場合 過去に登録した同じホスト名を取り除く
252
+
253
+ if ($in{ld} == 1){
254
+
255
+ my @nline=();
256
+
257
+ foreach (@lines){
258
+
259
+ my ($hs,$dammy) = split(/<>/);
260
+
261
+ if ($hs ne $host){push(@nline, $_);}
262
+
263
+ }
264
+
265
+ @lines=@nline;
266
+
267
+ }
268
+
269
+ unshift(@lines, $addline);
270
+
271
+ while ($#lines+1 > $in{ln}) { pop(@lines); }
272
+
273
+ open(LTF,">$listing_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
274
+
275
+ print LTF @lines;
276
+
277
+ close(LTF);
278
+
279
+ #ランキングの順位判
280
+
281
+ open(RKF,"$ranking_file") or &output_js("alert('CGIエー:ファルオープエラー');\n");
282
+
283
+ my @rlines=<RKF>;
284
+
285
+ close(RKF);
286
+
287
+ my $sw=0;
288
+
289
+ my $i=1;
290
+
291
+ my $rank= 0;
292
+
293
+ if ( $#rlines < 0 ){$rank= 1;}
294
+
295
+ else {$rank=@rlines+1;}
296
+
297
+ if ($rank > $in{rn}){$rank=0;}
298
+
299
+
300
+
301
+ my $oldrank= $in{rn}+1;
302
+
303
+ if ($in{rd} == 1){
304
+
305
+ foreach (@rlines){
306
+
307
+ my ($dhs,$dsk,$ddam) = split(/<>/);
308
+
309
+ if ($dhs eq $host){$oldrank=$i;}
310
+
311
+ $i ++;
312
+
313
+ }
314
+
315
+ }
316
+
317
+
318
+
319
+ $i=1;
320
+
321
+ foreach (@rlines){
322
+
323
+ my ($rhs,$rsk,$dam) = split(/<>/);
324
+
325
+ if ($rsk <= $in{sk}){
326
+
327
+ $rank= $i;
328
+
329
+ last;
330
+
331
+ }
332
+
333
+ $i ++;
334
+
335
+ }
336
+
337
+
338
+
339
+ if ($in{rd} == 1 && $rank > $oldrank){$rank=0;}
340
+
341
+
342
+
343
+ #JS送信
344
+
345
+ my $output_data = "cgi_rank=$rank;\nending();\n";
346
+
347
+ &output_js($output_data);
348
+
349
+ exit;
350
+
351
+ }
352
+
353
+
354
+
355
+ sub ranking_regist {
356
+
357
+ #登録処理
358
+
359
+ Jcode::convert(\$in{n}, 'sjis');
360
+
361
+ Jcode::convert(\$in{cm}, 'sjis');
362
+
363
+ my $host = &get_host;
364
+
365
+ open(RKF,"$ranking_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
366
+
367
+ my @lines=<RKF>;
368
+
369
+ close(RKF);
370
+
371
+ my $addline="$host<>$in{sk}<>$date<>$time<>$in{n}<>$in{cm}<>\n";
372
+
373
+ my $sw=0;
374
+
375
+ my $result=0;
376
+
377
+ my @nline=();
378
+
379
+ foreach (@lines){
380
+
381
+ my ($rhs,$sk,$dammy) = split(/<>/);
382
+
383
+ if ($sk <= $in{sk} && $sw == 0){
384
+
385
+ push(@nline, $addline);
386
+
387
+ $sw = 1;
388
+
389
+ $result=1;
390
+
391
+ }
392
+
393
+ if ($in{rd} == 1 && $rhs eq $host){
394
+
395
+ $result=2;
396
+
397
+ }
398
+
399
+ else {
400
+
401
+ push(@nline, $_);
402
+
403
+ }
404
+
405
+ }
406
+
407
+ if ($sw == 0 && $result == 0){
408
+
409
+ push(@nline, $addline);
410
+
411
+ $result=1;
412
+
413
+ }
414
+
415
+ while ($#nline+1 > $in{rn}) { pop(@nline); }
416
+
417
+ open(RKF,">$ranking_file") or &output_js("alert('CGIエラー:ファイルオープンエラー');\n");
418
+
419
+ print RKF @nline;
420
+
421
+ close(RKF);
422
+
423
+ #JS送信
424
+
425
+ my $output_data = "result=$result;\nranking_regist_result();\n";
426
+
427
+ &output_js($output_data);
428
+
429
+ exit;
430
+
431
+ }
432
+
433
+
434
+
435
+ sub get_host{
436
+
437
+ # ホスト名を取得
438
+
439
+ my $host = $ENV{'REMOTE_HOST'};
440
+
441
+ my $addr = $ENV{'REMOTE_ADDR'};
442
+
443
+ # ホスト名が取得できない場合、IPからホスト名を取得する
444
+
445
+ if ($host eq "" || $host eq $addr) {
446
+
447
+ $host = gethostbyaddr(pack("C4",split(/\./,$addr)),2) || $addr;
448
+
449
+ }
450
+
451
+ return $host;
452
+
453
+ }
454
+
455
+
456
+
457
+ sub read_param {
458
+
459
+ my ($buf,%in);
460
+
461
+ $buf = $ENV{QUERY_STRING};
462
+
463
+ foreach ( split(/&/, $buf) ) {
464
+
465
+ my ($key,$val) = split(/=/);
466
+
467
+ $key =~ tr/+/ /;
468
+
469
+ $key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
470
+
471
+ $val =~ tr/+/ /;
472
+
473
+ $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
474
+
475
+ $key =~ s/[<>"'&\r\n]//g;
476
+
477
+ $val =~ s/&/&amp;/g;
478
+
479
+ $val =~ s/</&lt;/g;
480
+
481
+ $val =~ s/>/&gt;/g;
482
+
483
+ $val =~ s/"/&quot;/g;
484
+
485
+ $val =~ s/'/&#39;/g;
486
+
487
+ $val =~ s/\r\n/<br>/g;
488
+
489
+ $val =~ s/\n/<br>/g;
490
+
491
+ $val =~ s/\r/<br>/g;
492
+
493
+ $in{$key} .= "\0" if (defined($in{$key}));
494
+
495
+ $in{$key} .= $val;
496
+
497
+ }
498
+
499
+ return %in;
500
+
501
+ }
502
+
503
+
504
+
505
+ sub output_js{
506
+
507
+ # ヘッダ
508
+
509
+ print "Content-Type: text/javascript\n\n";
510
+
511
+ # 送信
512
+
513
+ print "$_[0]";
514
+
515
+ exit;
516
+
517
+ }
518
+
519
+ '''
366
520
 
367
521
 
368
522
 

1

ご指摘ありがとうございます。 このようなjsファイルです。

2016/07/25 04:17

投稿

oshibuchiryo5
oshibuchiryo5

スコア11

test CHANGED
File without changes
test CHANGED
@@ -20,11 +20,349 @@
20
20
 
21
21
  ###該当のソースコード
22
22
 
23
- ```ここに言語を入力
23
+ javascript
24
+
24
-
25
+ /*------------------------------------------------------------------------
26
+
27
+ * Quiz Generator Script Ranking+ 設定ファイル
28
+
29
+ * Copyright 2012 Sawa's Factory
30
+
31
+ * http://sawa-s.com/quiz-generator-ranking.html
32
+
33
+ ------------------------------------------------------------------------*/
34
+
35
+
36
+
37
+ /*---------- オープニング&クイズ設定 ----------*/
38
+
39
+ /* クイズボックスの横幅 縦幅*/
40
+
41
+ var q_w=450; //横幅 px min=400
42
+
43
+ var q_h=380; //縦幅 px 選択数の増減によって調整してください。3択:330 4択:380 5択:430
44
+
45
+ /* タイトル */
46
+
47
+ var q_title="4択クイズ";
48
+
49
+ /* オープニングメッセージ ボタン */
50
+
51
+ var opening_msg=[
52
+
53
+ "このクイズは4択形式のクイズです。",
54
+
55
+ "全部で10問あり、満点は100点です。",
56
+
57
+ "あなたは何点取れるでしょうか?",
58
+
59
+ "",
60
+
25
- ここにご自身が実行したソスコード書いてください
61
+ "お名前(ハンドルネム可)入力してください。",
62
+
26
-
63
+ "ランクインするとランキングに登録する事ができます。"
64
+
27
- ```
65
+ ];
66
+
67
+ var opening_start_button="START";
68
+
69
+ /* 出題数 */
70
+
71
+ var q_no=5;
72
+
73
+ /* 出題順 0-昇順 1-ランダム */
74
+
75
+ var q_rnd=0;
76
+
77
+ /* 正解・不正解の表示 0-しない 1-する */
78
+
79
+ var q_dsp=1;
80
+
81
+ /* 正解・不正解を表示する場合、表示する秒数 */
82
+
83
+ var q_dtime=2;
84
+
85
+ /* 正解・不正解を表示する場合、サウンドを使用 0-しない 1-する */
86
+
87
+ var q_sound=0;
88
+
89
+ /* 制限時間(秒) 0-設定なし */
90
+
91
+ var q_timer=0;
92
+
93
+ /* 選択岐をシャッフル 0-しない 1-する */
94
+
95
+ var q_sfl=1;
96
+
97
+ /* 正解・不正解を表示する 画像ファイル(入れ替える場合のみ) 不正解画像,正解画像の順 */
98
+
99
+ var img_file=["image/0a.png","image/1a.png"];
100
+
101
+ /* サウンドを鳴らす場合のサウンドファイル (入れ替える場合のみ) 不正解サウンド,正解サウンドの順 */
102
+
103
+ var sound_file=["sound/0.wav","sound/1.wav"];
104
+
105
+
106
+
107
+ /*---------- 問 題 ----------*/
108
+
109
+ var questions = [
110
+
111
+ ["問題1", ["選択1-1", "選択1-2", "選択1-3", "選択1-4"], 1, 5]
112
+
113
+ ,["問題2", ["選択2-1", "選択2-2", "選択2-3", "選択2-4"], 1, 6]
114
+
115
+ ,["問題3", ["選択3-1", "選択3-2", "選択3-3", "選択3-4"], 1, 7]
116
+
117
+ ,["問題4", ["選択4-1", "選択4-2", "選択4-3", "選択4-4"], 1, 8]
118
+
119
+ ,["問題5", ["選択5-1", "選択5-2", "選択5-3", "選択5-4"], 1, 9]
120
+
121
+ ,["問題6", ["選択6-1", "選択6-2", "選択6-3", "選択6-4"], 1, 10]
122
+
123
+ ,["問題7", ["選択7-1", "選択7-2", "選択7-3", "選択7-4"], 1, 11]
124
+
125
+ ,["問題8", ["選択8-1", "選択8-2", "選択8-3", "選択8-4"], 1, 12]
126
+
127
+ ,["問題9", ["選択9-1", "選択9-2", "選択9-3", "選択9-4"], 1, 15]
128
+
129
+ ,["問題10", ["選択10-1", "選択10-2", "選択10-3", "選択10-4"], 1, 20]
130
+
131
+ ];
132
+
133
+
134
+
135
+ /*---------- エンディング設定 ----------*/
136
+
137
+ /* 一覧に登録する点数 これを0にするとクイズ参加者全員の得点を登録する。 */
138
+
139
+ var quiz_clear = 80;
140
+
141
+ /* 得点振り分けメッセージ*/
142
+
143
+ var endings = [
144
+
145
+ [100, [
146
+
147
+ "<span class='msg_tokuten'> う~ん、お見事!!</span>"
148
+
149
+ ,"<span class='msg_tokuten'> !name!!name_keishou! の得点は <strong>満点</strong>でした。</span>"
150
+
151
+ ,"",
152
+
153
+ ,"正解数は!seikai_num!問、正解率は!percent!%です。"
154
+
155
+ ]]
156
+
157
+ ,[80, [
158
+
159
+ "<span class='msg_tokuten'>う~ん。さすがですね。</span>"
160
+
161
+ ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
162
+
163
+ ,""
164
+
165
+ ,"正解数は!seikai_num!問、正解率は!percent!%です。"
166
+
167
+ ,"再挑戦をお待ちしています。"
168
+
169
+ ]]
170
+
171
+ ,[50, [
172
+
173
+ "<span class='msg_tokuten'>なかなかやりますね。</span>"
174
+
175
+ ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
176
+
177
+ ,""
178
+
179
+ ,"正解数は!seikai_num!問、正解率は!percent!%です。"
180
+
181
+ ,"再挑戦をお待ちしています。"
182
+
183
+ ]]
184
+
185
+ ,[30, [
186
+
187
+ "<span class='msg_tokuten'>もうちょっとです。がんばりましょう</span>"
188
+
189
+ ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
190
+
191
+ ,""
192
+
193
+ ,"正解数は!seikai_num!問、正解率は!percent!%です。"
194
+
195
+ ,"再挑戦をお待ちしています。"
196
+
197
+ ]]
198
+
199
+ ,[0, [
200
+
201
+ "<span class='msg_tokuten'>あれ、わざと間違えたのかな。</span>"
202
+
203
+ ,"<span class='msg_tokuten'>!name!!name_keishou!の得点は <strong>!tokuten!点</strong> でした。</span>"
204
+
205
+ ,""
206
+
207
+ ,"正解数は!seikai_num!問、正解率は!percent!%です。"
208
+
209
+ ,"再挑戦をお待ちしています。"
210
+
211
+ ]]
212
+
213
+ ];
214
+
215
+ /* リスタートのボタン名 */
216
+
217
+ var restart_button_name="RESTART";
218
+
219
+ /*---------- 管理モード ----------*/
220
+
221
+ var pw="0123";
222
+
223
+
224
+
225
+ /*--------------- ここからCGI登録、一覧・ランキング表示に関する設定 ---------------/*
226
+
227
+ /* JavaScriptでCGIを制御しております。
228
+
229
+ 以下の設定をするだけでCGIへデータが渡されます。 */
230
+
231
+
232
+
233
+ /* CGIファイルの場所と名前 CGIが別サーバーの場合はhttp://…から書く */
234
+
235
+ var cgi_file="cgi/record.cgi";
236
+
237
+
238
+
239
+ /* ---------- 名前入力関係の設定 ---------- */
240
+
241
+ /* 名前の入力 0-匿名(省略)可 1-入力必須 */
242
+
243
+ var name_input=0;
244
+
245
+ /* 匿名の場合の名前 */
246
+
247
+ var tokumei="匿名";
248
+
249
+ /* 名前のあとの敬称 */
250
+
251
+ var name_keishou="さん"
252
+
253
+ /* 名前の最大文字数 */
254
+
255
+ var name_length=6;
256
+
257
+ /* クッキー保存期間 日数 */
258
+
259
+ var cookieExpires=7;
260
+
261
+ /* クッキーパス */
262
+
263
+ var cookiePath="/";
264
+
265
+
266
+
267
+ /* ---------- 最新のクイズ履歴一覧の設定 ---------- */
268
+
269
+ /* 一覧に表示する人数 */
270
+
271
+ var listing_num=20;
272
+
273
+ /* 一覧の名称 */
274
+
275
+ var listing_title="最新" + listing_num + "名の履歴一覧";
276
+
277
+
278
+
279
+ /* ---------- ランキングの設定 ---------- */
280
+
281
+ /* ランキングをクリアするタイミング
282
+
283
+ 0-クリアしない 1-月が変わったらクリアする 2-年が変わったらクリアする
284
+
285
+ クイズ運用後に変更すると、クリアされてしまうので注意。 */
286
+
287
+ var ranking_clear=1;
288
+
289
+ /* ランキングに表示する人数 */
290
+
291
+ var ranking_num=20;
292
+
293
+ /* ランキングの名称 */
294
+
295
+ var ranking_title="今月のランキング";
296
+
297
+ /* コメントの入力 0-省略可 1-必須 */
298
+
299
+ var ranking_comment=1;
300
+
301
+ /* コメントの最大文字数 */
302
+
303
+ var ranking_comment_length=12;
304
+
305
+ /* ランクインした場合の登録メッセージ */
306
+
307
+ var rankin_msg=[
308
+
309
+ "!name!!name_keishou! の得点が <span style='color:red;font-weight:bold;font-size:16px;'>!rank!位</span> にランクインされました。",
310
+
311
+ "コメント欄に感想等書いてくれると嬉しいです。",
312
+
313
+ "",
314
+
315
+ "ランキングに登録するには[登録]を、<br/>登録せず結果を見る場合は[結果表示]をクリックしてください。"
316
+
317
+ ];
318
+
319
+ /* 一覧及びランキングをクローズするボタン画像 */
320
+
321
+ var lr_close_button="image/close_button.png";
322
+
323
+
324
+
325
+ /* ---------- 一覧&ランキングに出力するソートキーの設定 ---------- */
326
+
327
+ /* ソートキー */
328
+
329
+ var sort_key="!tokuten!";
330
+
331
+ /* 追加キー */
332
+
333
+ var listing_add_key="!percent!";
334
+
335
+ /* 一覧及びランキングに表示する名前 */
336
+
337
+ var sort_key_name=new Array();
338
+
339
+ sort_key_name['!tokuten!']="得点";
340
+
341
+ sort_key_name['!seikai!']="正解点数";
342
+
343
+ sort_key_name['!seikai_num!']="正解数";
344
+
345
+ sort_key_name['!percent!']="正解率<br/>(%)";
346
+
347
+
348
+
349
+ /* ---------- 一覧&ランキングの登録設定 ---------- */
350
+
351
+ /* 匿名の場合、一覧及びランキングに登録 0-しない 1-する */
352
+
353
+ var listing_tokumei=1;
354
+
355
+ /* 匿名の場合、ランキングに登録 0-しない 1-する */
356
+
357
+ var ranking_tokumei=0;
358
+
359
+ /* 一覧に重複登録 0-許可する 1-許可しない */
360
+
361
+ var listing_dupli=1;
362
+
363
+ /* ランキングに重複登録 0-許可する 1-許可しない */
364
+
365
+ var ranking_dupli=1;
28
366
 
29
367
 
30
368