- ベストアンサー
フォームを送信した後…?
アンケートなどのフォームを作って送信したら、『送信しました』っていうメッセージが出ますよね。あれってどうやって表示出来るようにすればいいのですか?送信ボタンを押して、その画面へリンクさせるやり方がわかりません。作ったものをサーバーに転送して、テストしてみたら《ページが見つかりません》っていう画面が出てしまいます。ホームページはDreamweaver3で作っています。皆さんからのアドバイスお願いします。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
まずCGIについてですが CGIは動的にHTMLを作成する技術です。 例としてCGIで代表的な言語perlだと print "<b>文字</b>" とすると <b>文字</b> がhtmlとして出力されます。printの部分は見えません。 また必要なのはCGIの知識だけでなくCGIの動く環境もです。 ご利用になっているWEBサーバーがCGI非対応ならばアウトです。 送信だけならHTMLだけで可能なのですが 問題は送信したものを受け取る方です。この部分にCGIが必須になってきます。 <form action="index.html"> <input type="submit" value="送信ボタン"> </form> ではindex.htmlに対して「送信ボタン」おしたという情報を送っています。 しかしcgiを使わなければその情報を受け取る事が出来ないのです。 でどんなフォームのCGIでも送る側はいっしょか?ということですが それは違います。 <form>~</form>の間に色々な情報が入りますし、上記には入っていませんが 実際は <input id="id1" type="submit" value="送信ボタン"> というふうなかんじでどのボタンを押したのかをid属性で識別したりしています。
その他の回答 (8)
- sha-girl
- ベストアンサー率52% (430/816)
>これらCGIの種類の中から、比較的憶えやすいものはどれでしょうか? 比較的覚えやすいかどうかはまずおいて一般的にCGIを許可しているサーバーというのは Perl以外が動かないところがほとんどです。最近はJSP,PHPが動くサーバーも増えましたが 基本的には有料です。(無料のところを私は知りません) 何故かというとセキュリティー上そうなってしまいます。 実はCGIというのはC言語等、特にWEBに特化していない言語でも書くことができます。 C言語やJavaというのはコンピュータ上で可能な事はなんでも出来てしまうため WEBサーバーの管理者がそれを実行する環境を許可しないのです。 でPerlは簡単か?、というと微妙です。 記号が多く、他のプログラム言語のと比べて異色的なものがあります。 しかしhughugさんの需要としてはやはりPerlが良いのではないでしょうか。 http://homepage1.nifty.com/gak/perl/ あと「スクリプト言語」についてですが Perlも「スクリプト言語」です。もちろんJavaScriptも。 C言語やJava等は「コンパイル言語」と呼び何が違うかというと スクリプト言語は コード → 直接実行 コンパイル言語は コード → コンパイル(機械語に翻訳) → 実行 の違いがあります。 ところで#2さんがいわれているCGIを使ったメール送信でもよいと思います。 つまり既存のCGIコードを使いアンケートの結果をメールでうけとるのです。 そうすれば自分自身がPerlを直接書く必要がなくなります。 ただ会社が仕事内容の詳細を公表となるとリアルタイムにWEBページには反映されず メールで受け取ったアンケート結果を手動で集計してHTMLを作成する必要があります。
お礼
そうなんですか…Perlもスクリプトなんですか?パソコンの言語って奥が深いんですね。WebではこんなにCGIの種類があるとは…。CGI即ちPerlと思い込んでました。私はソースの読めるものがスクリプト、ソースの中身(文章・指令)が隠れてて解読不能なものがプログラムと考えてました。お陰様でちょっとは勉強になりました。大変お世話になりました。ありがとうございます。
#2です。 たびたびすみません。 #7でメール送信フォームが設定できたら OCNのサポートに問い合せて 送信後に別のページにジャンプさせる方法を確認して 設定を見直すようにしてください。 ですから、 <INPUT type="hidden" name="_location_" value="http://www.****.ne.jp/xxx.htm"> では動作しない場合があります。
お礼
はい!了解しました。どうもご親切に…御礼申し上げます。
#2です。 え~と、OCNには ページオン(PageON)があり簡単にメール送信フォームが作れますよ。(参考URL参照ください) 参考URL内の <FORM METHOD="post" ACTION="/cgi-bin/formmail.pl"> <INPUT TYPE="hidden" NAME="recipient" VALUE="???@???.ocn.ne.jp"> </FORM> と <INPUT type="hidden" name="_location_" value="http://www.****.ne.jp/xxx.htm"> をソースに貼り付ければご希望のことができると思います。 (プロバイダが異なるので動作未確認) 法人向けサービスでは独自CGIが利用できますので フリーのCGIを拝借すれば簡単に利用できると思います。 ↓ http://tohoho.wakusei.ne.jp/wwwsoft.htm 全体的に難しく考えておられるのは気のせいでしょうか?
お礼
ありがとうございました。既製品を使う感覚ですね。オリジナルに制限がありますから、こうするしか仕方ないのでしょうね。専門的な仕事ですから、フォームもそれに沿ったページを作ったのに残念でした。CGIはタグと違ってプログラムなので、どうしても難しく考えてしまいます。ましてやクライアントからの仕事受注・発注のフォームもありますので余計です。既製で賄えないカキコ欄(専門的)を用意してましたから、オリジナルしかないと当初から考えてました。しかしそのためには、CGIが書けて知識も必要とは…。既製の良い物を探して利用する方向しかないのですね。CGIことを詳しく知らなかった自分が情けないです。JavaScriptぐらいなら本も多いし、Perlほど難しくないと思ってたので、勉強意欲はありますがCGIではありませんから応用も出来ないでしょうしね。(涙)
- sha-girl
- ベストアンサー率52% (430/816)
CGIといってもPerlは言語として古く最近は色々な種類の言語がでてきています。 流行なのはJavaをCGIに対応させたJSP 他にもMicroSoftにはASPというものがあります。 ちなみに「教えてgoo」はJSPとPHPというものをつかっています。 送信したものを単に保存するだけなら比較的簡単に出来ます。 私自信がプログラマーな為、簡単に出来るといっても いままでプログラム言語をやったことのない人にとっては やはり難しいかもしれません。 基本的に企業にこういう作業を委託すると途方も無く高いです。 恐らくhughugさんの想像を遥かに超えます。最低でもうん十万、あるいはうん百万です。 プログラマーの友達がいれば一番良いのですが、 気前の良い人なら晩飯おごるぐらいでやってくれるはず。。 hughugさんのやろうとしている事はそれほど複雑な事では無いと思うので 一度、本屋に足を運びPerlの書籍を見てはどうでしょうか?
お礼
御意見ありがとうございます。CGIと1口で言っても様々あるんですねぇ。HTMLを憶えるだけでもヒーヒー言ってるのに、CGIまで憶える精神的な余裕もないし、スクリプトとプログラムは全然別物ですから、これから先が大変ですよ。せめてスクリプト(CGIよりは簡単…ですよね??)で賄える方法があればねぇ…尤もスクリプトは、ソースを見られたら解読されてしまう危険性は孕んでいるでしょうけど…。タグは経験を積めば憶える自信は出て来ましたが…、これらCGIの種類の中から、比較的憶えやすいものはどれでしょうか?
#2です。 え~と、cgiの設定はしていないのですかね? とりあえず、プロバイダーでメール送信フォームを 用意していることがありますから そちらをご確認ください。 <INPUT type="hidden" name="_location_" value="http://www.****.ne.jp/xxx.htm"> >A...***の部分は私のURLのことですか? yes >B...xxxの部分はフォームを作ったページのことですか? yes 例えば、 メール送信フォーム名が「form」、 送信後の確認ページ名が「kakunin」の場合 http://www.ocn.ne.jp/form.htm http://www.ocn.ne.jp/kakunin.htm になりますね。 要はIEのアドレスバーに表示されるアドレス名です。 このアドレス名を value="ここに確認ページのアドレス" を入力します。 >C...お答え頂いたタグの記述はどこに挿入するのですか? cgiソースが書いてある後ろあたりが分かりやすいと思います。
お礼
明瞭なアドバイスに感謝します。制作中のサイトは、会社が仕事内容の詳細を公表するためのものです。プロバイダはOCNですが、ここはオリジナルCGIを禁止してるそうで、やむなくHTMLで作ることにしたのです。Dreamweaver3のマニュアルでは簡単に作れるように書いてますし、CGIが必要ってことが全然明記されてません。そのままサーバーへ転送でOK…みたいに書いてありましたから安心してました。事実は違ってるんですね。OCNは何故CGIを禁止するのか理解出来ません。これではここを契約してる人や会社が、自由なサイトを公開するな!って言ってるのと同じです。制限がキツ過ぎて作る私も四苦八苦です。OCNの実情は知りませんが、doconimoさんならどう思います。この現実…ドメインを取った価値がないと思うのですが…。
- sha-girl
- ベストアンサー率52% (430/816)
「送信しました」っと表示させるだけなら簡単ですが 実際に送信するにはcgiの知識が必要です。 ボタンをおしてindex.html(送信されました)を表示する htmlです。 <form action="index.html"> <input type="submit" value="送信ボタン"> </form>
お礼
回答感謝します。即ちフォームにはCGIの知識が欠かせないってことですね。そこで質問させて下さい。 オリジナルのフォームや既製(自由に使える)でもCGIはそのものは同じなんですか。つまりCGIはプログラムであってタグではありません。どんな形でフォームを作っても送信するCGIは一緒ではないかと思いました。でないと誰にでもフォームは作れない気がするんですが…。CGIは共通ということで…。 是非とも明解な返答宜しくお願いします。
『送信しました』というページ(ファイル)を作り、 下記のソースにアドレスを入力します。 <INPUT type="hidden" name="_location_" value="http://www.****.ne.jp/***.htm">
お礼
回答ありがとうございます。そこで更にお訊ねしたいのですが、再度回答お願いします。 <INPUT type="hidden" name="_location_" value="http://www.****.ne.jp/xxx.htm"> A...***の部分は私のURLのことですか? B...xxxの部分はフォームを作ったページのことですか? C...お答え頂いたタグの記述はどこに挿入するのですか? 御返事待ってます。
- the845t
- ベストアンサー率33% (246/743)
それはCGI側の処理です。 アンケートがCGIを介して、それを編集することができるのであれば、 それを編集する必要があります。
お礼
そうですかCGIですか。オリジナルでフォームを作成するには、やはりPerlの勉強も必要ですね。アドバイスありがとうございました。
お礼
丁寧な回答に感謝します。結局フォームのやり取りにはCGIテクが必要ってことなんですね。CGIはプログラムですから、我々一般人には手も足も出ません。企業サイトのフォームは、そんなプログラマーに委託してるんですね。これで自分でオリジナルCGIを作成する実現性が潰えてしまいました。ちまちま時間をかけて勉強するしかありませんね。フォームの内容が専門的ですから、レンタルCGIにもありません。Perlをプロに依頼したら料金は高いのですか?御存知でしたら教えて頂けませんか?会社のサイト制作がほぼ終わって、最後になって躓くとは…まさにトホホの心境です。代わりの手段はありませんか?