• 締切済み

CGI 実行後に HTML でフォーム付のページを出力したいのですが・・・

CGI 初心者ですが、質問です。商品の合計金額を出す CGI プログラムを実行後に HTML でフォーム及び送信ボタン付のページを出力したいのですが・・・色々とサイトを渡り歩いたのですが、初心者なものでどのサイトを見てもそれらしき事は書いてあるのですが何の事を書いてあるのかが全くわかりません。大変お手数で申し訳ないのですがプログラムの記述ヒントをこの場で頂ければ助かります。宜しくお願い致します。

  • Perl
  • 回答数4
  • ありがとう数3

みんなの回答

回答No.4

komorebi99です 追伸です。 #3で 商品名の変数を$brandname,(合計)金額の変数を$resultとしていますが、メールの送信先を指定する場合は例えば$atesakiを追加して <form> ~ </form>の中に print "<input type='hidden' name='atesakidata' value=$atesaki>"; を記述し、メールプログラムのであて先アドレスを指定できるように しておく必要がありますね。

回答No.3

kz0618さんのご質問の「送信」はメール送信ということなのでしょうか? 単に「送信」というと、ブラウザからサーバーにデータを送信することを 指すのです。 サンプルプログラムとして、計算結果と送信ボタンを表示するperl/CGI コードを書きました。 決定された内容をメールで特定の方(例:管理者など)に送信するには、 <form>タグ中にメール送信のCGIプログラム名を記述すればFormの送信 ボタン(type=submit)のクリックで実行されます。 ところで、メール送信のプログラム(ソース)は用意されていらっしゃる のでしょうか? #! /perl/bin/perl # サンプルプログラム $brandname = 'パソコン'; $result = 1000; print "Content-type: text/html\n\n"; print << "END"; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>Formのサンプル</title> </head> <body> <form > END print '商品名は'."$brandname<br>\n"; print '合計金額は'."$result".'円です'."<br>\n"; print "<hr>"; print '決定しますか?'."<input type='submit' value='決定' name='buybtn'>\n"; print "</form>"; print << "END"; </body> </html> END exit;

kz0618
質問者

お礼

komorebi99 さん動きましたよ~!!商品パーツ選択ページで各商品別の数量・価格と合計金額を算出し、それを Sendmail で送信できています。これ応用すると色んな事に使えそうです。CGI 暦1ヶ月の僕がまさか見積シミュレーションシステムを作る事が出来たなんて自分でも信じられません。これも komorebi99 さんの丁寧なアドバイスのお陰だと思います。komorebi99 のヒントであらゆる道が開けました。本当に有難うございます。これからも頑張ります。

kz0618
質問者

補足

本当に親切かつ丁寧な説明感謝致します。今まで Perl に関するあらゆる掲示板で幾度となく質問等して参りましたが、今回のような親切かつ丁寧な説明をお受けしたのは初めてです。お陰様で何とか動きそうな気がします。ご好意を無駄にせぬよう何とか頑張って動かしてみます。無事プログラムが動きましたらこの掲示板にてご報告させて頂きます。本当に有難うございました。

回答No.2

もう少し「やりたいこと」を教えてください。 1.「合計金額」などの計算結果を含めて送信したいのでしょうか? 2.計算結果などは関係なく、別のhtmlページを出力したいのでしょうか?

kz0618
質問者

補足

そうなんです。合計結果の計算結果も含めて送信したいんです。 一応素人なりに構想を考えて見ました。 1. まず CGI で計算結果を HTML 出力する。 2. その計算結果 HTML に ( フォーム & 送信ボタン ) の プログラムも同時出力する。 3. 出力された HTML データのフォームから先ほどの 計算プログラムではなく、Sendmail プログラムを呼び出して送信。 ・計算結果 = 計算結果用 CGI プログラム ・メール送信 = Sendmail 用 プログラム 計算用 HTML ↓ ( 計算 ) 計算用 CGI プログラムを使用 ↓ 計算結果・フォーム・送信ボタンが HTML 出力される ↓ ( メール送信 ) Sendmail プログラムを使用 このような形で組むのが素人の僕にとっては一番簡単な作り方だと思うのですが・・・いかがな物でしょうか?お手数をおかけして申し訳ございません。

  • MicroK2O
  • ベストアンサー率53% (33/62)
回答No.1

買い物カートのようなものを考えているのでしょうか。 それならば色々なスクリプトを読んで使って研究するのが 一番手っ取り早いTと思います。 「CGI 買い物カート スクリプト」などと検索して 色々なスクリプトを見比べてみてはいかがでしょう。 流石にいきなり1から作るのは難しいと思いますので。

参考URL:
http://www.kent-web.com/cart/index.html
kz0618
質問者

お礼

そうですね。やはりテンプレートを使用するのが一番簡単ですね・・・ 地道に頑張ってみます。有難うございました。

関連するQ&A

  • cgiで表示しているフォームをhtmlファイル内に入れたい

    質問の表現が分かりにくいかもしれませんので具体的に描かせていただきます。 こちらのサイトhttp://www.ortecweb.com/cgi/koukai/form/のメールフォームを設置しようとしています。 現在はwww.****.com/form/form.cgi(ここにアクセスするとフォームが表示されます)という状態で設置(実行)は出来たのですが、 実際のホームページで表示するためにhtmlを作ってその中にフォームの広告を表示して送信させるようにしたいのです。 そして、このフォームのCGIはhtmlをカスタマイズできるもので、ちゃんと利用すべきhtmlファイルも一緒に入っています。 説明書きにカスタマイズの仕方があるのですが、 注意のみで肝心の実際のcgiの入れ方(と言えばいいのでしょうか?)の記述がないのです。 記述がないということは、メチャ簡単なのかもしれませんが、 その方法がまったく分からないのです。 この説明を理解していただけるかどうか不安ですが、ヒントでもいただければと思いますので よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • cgiをhtmlに出力する方法

    初めまして。 早速なのですが、 フォームから文章を書いて送信すると、xxx.cgiで出力されますよね これを、xxx.htmlで出力させることは可能なのでしょうか? 何もかもが初心者なので、宜しくお願い致します。

    • ベストアンサー
    • CGI
  • HTMLスキン型CGIを作るには?

    フォームメールの制作を行っているのですが、汎用性を高めるために、HTML部分はすべて外部に書き出して処理に関するところだけをCGIに記述しようと考えています。 まず、デザインテンプレート(HTMLスキン)に$html_contentsなどと挿入位置を記述しておき、 CGIへのアクセスがあった際に、スキンを読み込み、その挿入位置に結果を代入するというものです。 できるなら、エラーメッセージや完了メッセージの部分も外部(HTMLを記述した*.datかな?)ファイルとしたいです。 参考になるサイトもしくは、プログラムをご存知の方はご教授願います。

    • 締切済み
    • CGI
  • フォームはCGIを使用しなくてもいいのですか?

    Webコンテンツ制作の仕事を始めて間もない者です。 画像作成及びDreamweaverにてHTMLコーディングをしています。 ある中小企業より個人的にサイト作成を依頼されました。 打ち合わせ時に、当方HTMLの知識のみでCGIなど特別なプログラミングの技術はありませんが宜しいかということを確認し、登録フォームはHTMLファイルのみの作成で実際CGIを組み込んだりはせず、納品しました。 企業担当者はビルダーやワードでのサイト作成経験はあるものの詳しい知識はない方です。 サイトが完成し支払いを受けましたが、「登録フォーム」が送信できないがどういうことだ、と電話がかかってきて「ホームページを作れるプロなら容易いことではないのか、そんなぐらいは知識のない私でも出来るが、一旦支払ったのだからやってくれ。今更出来ないとはどういうことだ」と言われました。 CGIの知識がないと説明しても納得せず「ではもう結構です!!」と激怒して電話を切られました。 果たして、その担当者が言うようにフォーム内容をメールで返すプログラムは、HTMLだけで、あるいはワードやビルダーで簡単に出来るものなんでしょうか。 PerlなどのCGI言語は絶対必要だと思うのですが、違うのでしょうか。 もう結構だと言われてもこちらの気もおさまりませんし、出来ればきちんと説明したいところですが、私もプログラムの知識が乏しいために何と説明したら良いのか途方に暮れています。 不躾ですが大変困っておりますのでお力添えよろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIによるアンケートフォームのメール送信

    私は今までHTMLでアンケートフォームを作成していました。しかし、HTMLで次のコードを組み込むとメール送信時に警告が出てしまいました。 <form action="mailto:○○○@△△△.co.jp"> そこで、いろいろなアンケートフォームのソースを見てみるとCGIが使われているようでした。 CGIはまったくの初心者です。 CGIでのアンケートフォームの作り方を教えてください。

    • ベストアンサー
    • CGI
  • CGI(Perl)でメールフォームを作ったのですが

    CGI(Perl)でメールアドレス、名前、内容のメールフォームを作ったのですがうまくいきません。 http://homepage.biglobe.ne.jp/errorpage/500.html CGIプログラムのエラーが発生しました。 原因 CGIプログラムの実行に問題があります。 まれに、予期しないサーバのエラーが原因でこのメッセージが出る場合があります。 と表示されます。 CGIのプログラムを作る前はHTMLだけで作っていました。 <form action="mailto:メールアドレス"~ メールアドレスを非公開で送信するには。

    • ベストアンサー
    • Perl
  • CGIでのHTMLとプログラムコードの分離について

    CGIでのHTMLとプログラムコードの分離について CGIプログラミングのフレームワーク的なアイデアについてご教示願いたいです。 CGIを記述する場合、その多くは下記のようなスタイルになるのではないかと思います。 1.formタグのactionからcgiを呼び出す     ↓ 2.cgiの中で計算やsendmail等の処理を実行     ↓ 3.結果をブラウザ上に表示するためprint等を利用してhtmlタグを表示 この手法を用いると、手順2のところでHTML部分とプログラムコード部分が混合してしまい、見栄え(html部分)を変更しようと考えた時、HTML部分の記述があるcgiプログラムを編集し、該当する部分のタグを表示させているであろうprint文の表示内容を変更する必要があります。 見栄えのhtml部分とCGIのコードを完全に分離することは出来ないのでしょうか??? 上記手順の「1」に関してはhtmlファイルを編集する事だけで、cgiファイルを編集する必要はありません。 手順「3」もリダイレクトを利用すれば可能だと思います。 問題は、手順「2」の部分です。 この部分の見栄え部分を変えようとすると、どうしてもcgiプログラムを開いて編集する必要に迫られてしまいます。 下記の例のような処理(見栄え用のhtmlファイルを読み込む方法)は出来ないものでしょうか? <例:アンケートフォーム> 1.アンケートフォーム(html)のformタグにあるactionからcgiを呼び出す     ↓ 2.cgiでformタグ内のテキストエリアやラジオボタン等の情報を収集     ↓ 3.収集結果を表示させるための「hantei.html」を読み込む     ↓ 4.読み込んだ「hantei.html」の中に収集結果を埋め込んで表示     ↓ 5.問題なければアンケート結果をsendmail等でメール送信   問題あれば手順1のアンケートフォーム(html)へ戻る     ↓ 6.無事にメール送信出来れば、有難うございましたページ(html)へリダイレクト 上記手順の3と4が実現できれば、見栄えを変えたい時はhtmlファイルを編集すればよく、cgiプログラムを触る必要がなくなるのではないかと思います。 私が考えている事について、「自分はこうしている」とか「そうではなくてこうすれば良いよ」などなどありましたら、是非ご教示願いたいです。

    • ベストアンサー
    • Ruby
  • 特定CGI「だけ」が、ローカル環境で実行できない原因について。(POSTでのフォーム送信はローカル実行不可?)

    こんばんは。 サーバでは問題なく動くCGI(Perl)が ローカルPC環境で動きません。 ローカルのHTMLファイルから呼び出すと CGIファイルがテキストとして表示されます。 しかし、パス関係の間違いはありません。 動かないCGIファイルを「print "Hello!";」などの 単純な文章に書き換え、同じHTMLから呼ぶと動きます。 また、「Perl文法チェックサイト」で チェックしても、文法間違いはありません。 ほかにどういった原因が考えられますでしょうか? ---------------------------------------- なお、ローカルのHTMLでは 「form」にラジオボタンを配置、 「submit」で「POST」送信したうえで その結果によってHTMLを生成出力するようにしています。 ここらへん、まったくよく分かっていないのですが もしかして、こういう送信はローカルでは 実行できないとかあるのでしょうか? 送信部分を削って、HTML出力だけのCGIにすると動きます。 繰り返しますがサーバ上では動作しています。 よろしくお願いいたします。 ---------------------------------------- ◆環境◆ WindowsXP IE6.01 httpd 1.42m  ActivePerl(バージョンの見方が分かりません)

    • ベストアンサー
    • CGI
  • CGIからアプリの実行

    こんにちわ。 C言語でCGIを作成しようとしております。 そこで、そのCGIのプログラムから他のアプリケーション(***.exe)を実行させたいと思っております。どのように記述すれば可能でしょうか。 また、詳しく説明のあるサイトなどありましたら教えていただきたいのですが。 宜しくお願いします。

    • 締切済み
    • CGI
  • フォームに書き込まれたHTMLタグを出力したい

     フォームに書き込んだHTMLタグを、出力後、ちゃんとHTMLタグとして生成させる方法を知りたいのですが。(言葉足らずですいません、例えば、掲示板の入力フォームで、テキストに書かれた例えば<font color=red>というHTMLタグを使い、フォーム送信後、文字が赤くなっている、ということを実現させたいだけなのですが)  当方、Perlどころかプログラミングそのものを理解していない者ですが、訳あってソースをいじるお手伝いをすることになって困っております。以前、さらっと一行、コードを書くだけで実現できると思ったのですが。ご教授頂ければ幸いです。

    • ベストアンサー
    • Perl

専門家に質問してみよう