CGI1年生です。
ソフトバンク刊の「Perlで作るCGI入門(応用編)」で勉強を始めたばかりです。
その中の「アンケート(enq.cgi)」を参照しているのですが、「回答ありがとう画面」を表示する前に、ユーザーがアンケートに回答した項目をユーザー自身が確認し必要があれば修正可能なように画面(ページ)を付加したいと考えています。
よい方法があれば教えてください。
全く別の方法でもかまいません。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

すみません、急いでいたもので(^^;



ふと考えたのですが、
もしページとして表示するのではなく、ダイアログでよければ、JavaScriptで十分イケる問題なんですね。
そうすると、コードを書く手間がはぶけるかなあ、なんて(^^;;

やり方は
1.送信ボタンを押したときにJavaScriptのダイアログ表示メソッドを使用して、表示。値は簡単にとれます。
2.ダイアログはボタンが2つ用意されているもの(OKとCancelね)を使用し、OKならCGIに送信、Cancelなら何もせずにダイアログを消去。
というところですが、いかがでしょう?
分からなかったらまた聞いてみてください。

注意:JavaScriptは環境によってはかなり不安定になります。頑丈なシステムを作りたいのであればお奨めしません。
    • good
    • 0

tada_bitoさん、逃げるなんてずるい~♪



やり方はtada_bitoさんの通り、確認FORMもcgiが吐き出せば良いだけです。一番安直な方法はページのソースをスクリプトの中にprint文で埋め込んでしまうのが一番頭を使わないでしょう。
私がよくやるのは確認画面のhtmlを作っておき、cgiがそれを読み込んで例えばhtmlの中に<!-- ans1 -->みたいに引き渡しパラメーターを入れる部分を記述しておき、cgiの中で前のページから受け取ったパラメーターをその部分に吐き出すようにしています。
デザインの変更が楽なんでこれやってますけど、鬼のようなアクセスのあるページだと厳しいですね。(爆)
    • good
    • 0

まずはやり方だけ…。



アンケートを送るフォーム画面をもcgiにしてしまいます。
確認画面は送られてきたパラメータを、print文でそのまま表示させる形にし、okだったらそのパラメータを送信、noだったらフォーム画面にパラメータを送り返してやればいいのですね。

具体的なコードについては、識者の方、よろしくお願いします。(逃
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qホームページビルダーで作成したアンケートフォームの回答をCGIによってメールで受信するには?

昨日「ホームページビルダー(HPB)で作成したアンケートフォームの回答をCGIによってメールで受信する方法」について質問をあげさせていただいた者です。
*昨日の質問:http://oshiete1.goo.ne.jp/qa3667373.html
NymphLuna様、nak777r様、tengujapan様ありがとうございました。

NymphLuna様からのアドバイスに従い実行したところ、何とかCGIの設置には成功したようです。
KENTさんのサイトよりDLしたpostmail.cgiについてアドバイスに従って若干の書き込みを加え、簡易チェック(http//~/intra/aaa/bbb/ccc/postmail.cgi?mode=check)をブラウザで行ったところ、エラーらしき画面は出ませんでした。
*KENTさんのサイト:http://www.kent-web.com/data/postmail.html

残るは、HPBで作成したアンケート(enquete.html)のFORMタグの変更で完了か!?と思いきや、アンケートの送信ボタンを押すと、『Method Not Allowed  The requested method POST is not allowed for the URL /intra/aaa/bbb/ccc/postmail/postmail.cgi.』と表示されてしまいました。

HPBからのFORMタグは以下のようなもので、
<FORM name="HPB_ELQ_QUESTION" action="mailto:私のメールアドレス?Subject=社員アンケート" enctype="text/plain" onsubmit="return HpbELQCheck();" onreset="HpbELQReset();" method="POST">

これを、NymphLuna様にアドバイスいただいた通り、KENTさんの設置例に従い、<form action="./postmail.cgi" method="POST">に置き換えたところ、「ページが見つかりません」と表示されてしまうため、<form action="postmail/postmail.cgi" method="POST">としたところ、今度は上述の「Method Not Allowed」が表示されてしまいました。MethodをGETに変えてみたのですが、上述の簡易チェックで表示される画面と同じものが表示されてしまいます。

そこで質問は、恐らくCGIは設置できていると思うのですが、FORMタグはどのように変更すればよいのでしょうか?どうすればアンケート結果をメール受信できるようになるのでしょうか?

皆さま、どうぞよろしくお願いいたします。

昨日「ホームページビルダー(HPB)で作成したアンケートフォームの回答をCGIによってメールで受信する方法」について質問をあげさせていただいた者です。
*昨日の質問:http://oshiete1.goo.ne.jp/qa3667373.html
NymphLuna様、nak777r様、tengujapan様ありがとうございました。

NymphLuna様からのアドバイスに従い実行したところ、何とかCGIの設置には成功したようです。
KENTさんのサイトよりDLしたpostmail.cgiについてアドバイスに従って若干の書き込みを加え、簡易チェック(http//~/intra/aaa/bbb/cc...続きを読む

Aベストアンサー

またお邪魔いたします。しつこくて申し訳ありません。

Method Not Allowed
The requested method POST is not allowed for the URL /intra/aaa/bbb/ccc/postmail/postmail.cgi

のエラー表示ですが、KENTさんのサイトで確認してみましたところ、以下3つの原因が考えられるそうです。
(1) .htaccessが必要にも関わらず設置されていない
(2) CGIの置き場所(ディレクトリ)が正しくない
(3) サーバ自体がCGIを設置できない

もしかすると、cgiを設置するディレクトリが決められているのかもしれませんし
また、(3)の要因が強いような気がします。(管理者の方もはっきりされませんでしたし)
あるいは、POST methodが利用できないサーバーかもしれません。これも可能性が強いです。
こうなってしまうとcgiを設置できないので、管理者の方に可能なように設定していただくしか…。

以下、余談なのですが
http://~/intra/aaa/bbb/ccc/postmail/
の中に「enquete.html」を入れて
<form action="./postmail.cgi" method="POST">にしてみてはどうでしょうか。
(たぶんこれでもエラーが出るかもしれませんが念のため)

またお邪魔いたします。しつこくて申し訳ありません。

Method Not Allowed
The requested method POST is not allowed for the URL /intra/aaa/bbb/ccc/postmail/postmail.cgi

のエラー表示ですが、KENTさんのサイトで確認してみましたところ、以下3つの原因が考えられるそうです。
(1) .htaccessが必要にも関わらず設置されていない
(2) CGIの置き場所(ディレクトリ)が正しくない
(3) サーバ自体がCGIを設置できない

もしかすると、cgiを設置するディレクトリが決められているのかもしれませんし
...続きを読む

Qperl使用のCGIでのデータファイルの取り扱いについて

こんにちは、
perlでCGIを動かしているんですが
掲示板やアクセスログなどのデータファイルの置き場所についてこまっています
perlのopen関数などでファイルを開くことはできても、直接URLを指定すれば
見ることができてしまいまます。
内部の実行からは読み書きできて、直接URLを指定したら、アクセス拒否にする
というパーミッションの設定or.htaccessなどの設定方法があれば教えてください。

Aベストアンサー

えっと、パーミッションは 606 で良いはずです。

一般的な場合として apache を見ますと、apache は各プロセスを指定のユーザ
権限で実行します。nobody や www といった名前を持つものだったりしますが
これは、一般のユーザではないです。で、660 がいけない理由ですが、
CGIの実行権限はステッキービットなどがセットされない限りは other 権限。
つまり最後の部分です。よって、 705 のCGIファイルを実行すると 660 ファイルは
読み込めません。other 権限では パーミッションは 0 であるからです。

でぇ、アクセスの制限で一般的なのは、プロバのユーザの場合、
public_html のような公開用ディレクトリと同じ位置に置けば(普通はpublic_html以下)、
アクセスできません。(CGIからは覗けます。)

.htaccess も良い方法です。設定例も結構あるので検索すれば普通に出ますよね。

QCGI perlでこんなスクリプトをご存知ないでしょうか?

一覧表があって、そこに仮に5個の名前があるとします。

ログインして自分のデータを変更や訂正。
更新されると、一覧表の順序内において、
一番先頭に表示される。

これって一番近いのは、やっぱり掲示板なんでしょうか?
もしこれに近い、無料配布されているサンプルを
ご存知でしたら、お教えいただけませんか?

Aベストアンサー

基本は名簿管理…なのでしょうか?

以下のものはどうでしょうか、更新順に表示も可能です。

■Miniりすと
http://www.minicgi.net/cgi2/list.html

参考URL:http://www.minicgi.net/cgi2/list.html

QCGIのアンケートについて

CGIでアンケートを作りたいと思っています。チェックボックス形式の回答表でいきたいのですが、データの受け渡しは可能でしょうか?また、複数回答可としたいのですが、「最大2つまで回答可」とする場合、2つ以上はチェックをつけられないというような制限も加えられますか?Javascriptが必要でしょうか?どうぞよろしくお願いします。

Aベストアンサー

最大幾つ-という方法で行くなら、JavaScriptを併用した方が便利です。

CGIだけで行う場合、一端CGIにデータを渡し、集計し、問題があった場合に元の画面を再表示する-という、サーバーにもユーザーにも負担が掛かる方法になります。


最大で2つまでであれば、ラジオボタンを2つ並べる方法を取る場合も有りますね。
(第一候補・第二候補でそれぞれにラジオボタンによるチェックを入れる)

QアンケートCGI(メールフォーム)

ホームページでアンケート&プレゼントをしようと思っています。
http://form.fc2.com/
これがベストに近いのですが、デザイン上の制約があるのと、毎月変わるプレゼント内容を表示できないなどがあり他のものを探しています。
そこで、設置型のアンケート&メールフォームを教えてください。
必要な機能は以下のものです。
・もちろん、メールで結果が届く。
・項目を自由に追加できる。
・項目の種類を1つずつ順番に選べない場合、順番を入れ替えることが出来る。(fc2と同じ機能)
・項目の修正が簡単に出来る。

また、デザインの修正(html)は自分で出来るので、デザインがいまいちと言う物については全然問題ないです。

良いCGIがあれば紹介をお願いします。

Aベストアンサー

FORMMAIL用(送信用)のCGIだけ探してきて、FORM自体はHTMLで自作したほうが早いと思います。

参考URL:http://www.i-say.net/cgi/listview.php3?category=11


このカテゴリの人気Q&Aランキング

おすすめ情報