改造ヒントページ
Web Qnaire 1
サンプル
解説ページ
Web Qnaire 2
サンプル
解説ページ
last update:2010/2/5
<ヒント>
-
このCGIでは連続投票を避けるために、最後に投票したホストを記録しておいてそのホストからの投票に対しエラーを出す仕組みになっています。
これを避けて連続投稿をOKにするには、
(ver 4.00以降の場合)初期設定で $renzoku_check = 0; としてください。
(ver 3.50以前の場合)「投票内容を今までのものに追加し結果を表示します」
サブルーチン"tsuika(Web Qnaire 1)"、"tohyo(Web Qnaire 2)"の10行目ほどの1行、
if ($lahost eq $host && $mode eq 'tohyo') {&error("連続投票はできません。<br><br>(接続ホストを変えて投票を試してみてください)");}
を削除してしまうことにより可能になります。先頭に#をつけてコメント行にしてしまうことでも同じく可能です。
また、サーバーによっては連続投票を避ける機能がお使いいただけず、
連続投票でなくてもエラーとなってしまうサーバーがあり、
この場合は上記の方法でこの機能を無効にする必要があります。
- このアンケートスクリプトでは全部の質問に回答しないとエラーが出るようになっています。
回答しないときにエラーを出さないようにするには、選択肢に「回答しない」という項目をつくっておくという方法があります。
- 回答方法を「複数回答可」にした場合は質問文に(複数回答が可能です)といったことを書いておいたほうが
回答者の人たちに分かりやすいかもしれません。
- フリーコメントの書きこみスペースを複数行(textarea)にするには、
「初期投票画面(Web Qnaire 1)」「投票内容を今までのものに追加し結果を表示します(Web Qnaire 2)」
サブルーチン"tohyo"の下から20行目ほどの1行、
内容<input type=text name=toko size="90">
を、次のように変更することで可能です。
内容<textarea name=toko rows=5 cols=50></textarea>
ただし、"rows"属性は入力フィールドの行数、"cols"属性は入力フィールドの幅(文字数)を表します。
この場合、改行文字を入力されるとプログラムが誤作動を起こしますので、
次の箇所を必ず変更してください。(ver 3.03以降は変更済み)
「入力情報の解析」サブルーチン"decode"内の20行目ほど、
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
の行のあとに、
$value =~ tr/\n/\ /d; #改行拒否
という1行を追加してください。これで改行コードが空白に変わります。
- 西暦年表示を4桁にするには、「時間読み込み」サブルーチン"jikan"の10行目ほどの1行、
$year = substr($year,1,2);
を、
$year += 1900;
としてください。(ver 3.03以降は変更済み)
<データファイルについて>
- 事故によりデータファイルが損なわれたときは、以下を参考にして手動で復旧することも可能です。
- 管理ページからではできない、質問文・選択肢へのタグの使用やスペースの挿入
もデータファイルを直接編集すれば可能です
(ver 3.50以降では管理ページからスペースや一部タグが入力可能)。
- データファイルの一例を示します。
5
1.自分のホームページを持っていますか?,3,no,radio,持ってます=58,持ちたいです=18,持つ気はないです=10,
2.このCGIスクリプトを気に入ってくれましたか?,4,no,radio,使います!=37,自分でもっと改造する!=31,使いたいけど難しそう=20,いまいちだね=8,
3.一日ネットにどのくらいつなぎますか?,7,no,select,常時接続=37,8時間以上=16,5時間以上=10,3時間以上=18,2時間以上=2,1時間以上=6,それ未満=6,
4.好きな言葉は?[複数選択可],7,yes,checkbox=sort,大好き!=26,一攫千金=30,そんなわけねーだろ=15,なんでやねん=17,やっとできた。=6,一期一会=5,一石二鳥=3,
5.行ってみたい場所は?,9,yes,radio,月=24,北海道=14,ヨーロッパ=16,夜景のきれいな丘=6,ルネッサンス時代=6,東北=5,南西=4,マントル=1,過去=8,
<b>webmaster</b>/CGI使ってください [2001/05/13 19:19:53]
01/05/13 19:19:53
proxy.hogehoge.com
- 1行目は質問数を表します。
- 2行目からは質問の内容です。
- 質問文,選択肢数,項目追加(yesかno),解答方法(択一"radio"か複数回答"checkbox"かプルダウン"select"、また回答を票数によりソートして表示する場合には"=sort"が後ろに付く),選択肢要素=投票数
- 最後-2行目はフリーコメントの内容です。
- <b>投稿者名</b>/投稿内容 [日時]を1つの投稿とし、<br>でつないであります。
- 最後-1行目は最終投稿日時です。
- 最後の行は最終投稿元ホストです。
資格の活用に憧れるサラリーマンSのブログ
ご意見はトップページのフォームからお願いします。
©2001-2010, Web Qnaire