• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メールフォームで送信先アドレスをプルダウン項目によって変更)

メールフォームのプルダウン項目で送信先アドレスを変更する方法

このQ&Aのポイント
  • 会社でメールフォームのカスタマイズをする際、プルダウン項目から選択した内容によって送信先アドレスを変更したい場合、うまく動作しないことがあります。HTMLとCGIを使用して実装を試みましたが、すべての送信先が同じアドレスになってしまいます。どこが間違っているのか、どのように修正すれば送信先を選択できるようになるのでしょうか?現在の知識はHTMLのみで、制限時間があるため、早急な教授をお願いします。
  • 質問:メールフォームのプルダウン項目から送信先を変更できません
  • メールフォームのプルダウンメニューで選択された項目によって送信先を変更したいのですが、うまく動作しません。HTML側では選択肢を設定し、CGI側では選択された値を受け取り、それに応じて送信先を設定していますが、すべてのメールが同じアドレスに送信されてしまいます。どこが間違っているのでしょうか?HTMLしかわからないため、具体的な修正方法を教えていただけると助かります。制限時間があるため、できるだけ早く回答をいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

テストする環境が無いので、結果はわからないのですが・・・ 228行目の $ret = &decode; の後に @addrList = ('aaa@aaa.com', 'bbb@bbb.com', 'ccc@ccc.com', 'ddd@ddd.com', 'eee@eee.com', 'fff@fff.com'); $mailto = $addrList[$in{'mailto'}]; を入れてみてはどうでしょうか。

gooo123456
質問者

お礼

できました!!!!!!!感動です! 本当にありがとうございました!!!!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

多分ですが・・・ まず、cgiの中を、STDINかQUERY_STRINGで検索してください。 大抵のcgiは、この命令でhtmlからのパラメータを受け取っています。 すると、619行からの「フォームデコード」decodeと言うサブルーチンでパラメータを受け取っています。 で、ずっと見ていくと、670行からで、$in{}と言うハッシュに取り込んでいます。 で、decodeはどこから呼ばれているかを見てみると、228行目で呼ばれています。 更に、最初から107行目を通って228行目行目を見て行くと、ほとんど設定ばかり、 と言うことで、多分ですが、107行目では、まだフォームからのデータは確定していないと思います。 それに、$FORM{}と言うハッシュは、プログラム上、どこにも出てきていませんので、いつでも""です。 それと、確かperlでは、変数の大文字小文字を区別するので、$FORMと$form{}は別物だったような・・・ これで、2つの事がわかったと思いますが、場所と変数名がおかしい。 $in{mailto}で、decodeを呼び出した以降でなければ、そもそも・・・ 詳しく見ていないので、後はお任せします。 間違っていたらすみません。 p.s. フリーソフトの利用&改造はそのソフトの利用規定をお守りください。

gooo123456
質問者

お礼

どうもありがとうございます! 今から言われたことを参考に色々試してみます!

gooo123456
質問者

補足

と、思いましたが結局どうすればいいかわかりませんでした(--;

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • [シェルの質問]改行と結合

    bsh初心者です。 よろしくお願いします。 1)下記のような","で区切られている場合、","を見つけたら  改行して出力したいです。 [入力] aaa,bbb,ccc, ddd,eee,fff [出力] aaa, bbb, ccc, ddd, eee, fff 2)下記のように、ある文字"aaa"をみつけたら、その次の行と結合して  出力したいです。 [入力] aaa: Hello! [出力] aaa:Hello! とこんな感じです。 awkとか使わないとできないでしょうか? awkはあんまり詳しくないので、できたら 記述例をいただけると幸いです よろしくお願いします。

  • C言語による「テキストファイルの読み書き(fprintf)」について

    C言語による「テキストファイルの読み書き(fprintf)」について質問です ずぶの初心者ですが、既知のファイルの1行目に指定した文字列を付加させるプログラムを作りたいと思っています。 以下のように作りました。 ------------------------------------------------------------ #include <stdio.h> int main(void) { FILE *fp; fp = fopen("test.csv","r+"); fprintf(fp,"コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56\n"); fclose(fp); return 0; } ------------------------------------------------------------ このとき「test.csv」の内容が以下のようであったとします。(容量は1MBくらいです。) 001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj この状態でプログラムをコンパイルして実行すると、「test.csv」の内容が以下のようになってしまいます。(一行目が消える) AAA,BBB,CCC,DDD,EEE 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj またcsvの行が増える度に妙な挙動になっていきます・・・(一行あいたり、先頭行が5行ほど消えたり) 希望する動作としては コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56 001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj のようになるようにしたいのですがどのようにすればよいのでしょうか。 よろしくお願いします。 (使用ソフト:Borland C++ Compiler, Cpad) 参考にしたサイトの項目:http://homepage3.nifty.com/mmgames/c_guide/17-01.html

  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

  • 大量データの一括変換

    aaa.bbb ccc.ddd eee.fff ggg.hhh 上記のようなデータが約1万行程度あるのですが、これを下記のようなユーザ名・メルアドに変換するコマンド等、お分かりになる方教えてください。ユーザ名・メルアドの間は半角スペースです。 ある程度自分で調べた結果awk等で出来そうな気がするのですが。。。 ユーザ名  メルアド   ↓     ↓ aaa.bbb aaa.bbb@hoge.com ccc.ddd ccc.ddd@hoge.com eee.fff eee.fff@hoge.com ggg.hhh ggg.hhh@hoge.com

  • Perlの正規表現について

    Perlの正規表現について質問です. ■質問 aaa bbb aaa bbb ccc "ddd" aaa bbb ccc "ddd eee" aaa bbb ccc ddd eee "fff ggg hhh iii" というような,文字列が書かれているファイルがあるとします. ※ダブルクォーテーションが無い行もあります. ※ダブルクォーテーション内のスペースの数は,行によってそれぞれ異なります. これを,ダブルクォーテーションの中にあるスペースだけ アンダーバーに置換する場合の正規表現を教えて下さい. つまり,下記の出力にしたいです. aaa bbb aaa bbb ccc "ddd" aaa bbb ccc "ddd_eee" aaa bbb ccc ddd eee "fff_ggg_hhh_iii" ■条件 ※ちょっと古いPerlでも動くよう,ゼロ幅肯定/否定後読((?<),(!<))は使わないでください. ※単に実現するだけなら, # cat inputfile | print -pe 'sub f(){}(shift;s/ /_/;return $_;); s/(\".*\")/&f($1)/e;' みたいな感じで置換できそうですが,「正規表現だけで簡単に書けるかどうか」が知りたいのです(正規表現だけで実現出来る場合,そのアルゴリズムを知りたいです).そのため,関数と/eオプションは使わないでください.

    • ベストアンサー
    • Perl
  • CSVファイルをAccessに取りこみたい

    以下のような2つのCSVファイルがあるとします。 【hoge1.csv】 aaa,bbb,ccc,ddd 1,2,3,4 【hoge2.csv】 aaa,bbb,ddd,eee,fff 1,2,4,5,6 Accessをあまり使用したことがないので教えていただきたいのですが、 hoge1.csv、hoge2.csvを、以下のような形で Accessの1つのテーブルにインポートする事はできるのでしょうか? ---------------------------- | aaa | bbb | ccc | ddd | eee | fff | | 1 | 2 | 3 | 4 |  |  | | 1 | 2 |  | 4 | 5 | 6 | ---------------------------- ※「aaa」「bbb」…をフィールド名としたいです vb等でプログラムを自作するしかないのでしょうか? 何か良い方法がありましたら教えてください。お願いします。

  • 抽出して並べ替えたい

    初めまして 非常に悩んでいます。 エクセルシートの列に下記のようにデータが並んでいます。(文字列) AAA bbb ccc (空白) BBB ddd eee (空白) AAA bbb ccc (空白) AAA eee ggg 並べ替え後 AAA AAA BBB bbb eee ddd ccc ggg eee 尚、列上でセル位置は任意で、空白行も任意です。(1つ以上です) できれば関数でお願いします。 VBAの場合、使用したことがないので詳しくお願いします。

  • sedで文字列の抜き出し

    ある一部分の文字列を抜き出したく、sedを使用したいと思って試行錯誤しております。 ↓あるファイル内の文字列 aaa bbb=ccc:ddd=eee:fff=ggg: aaa bbb=hhh:ddd=iii:fff=jjj: ※aaaとbbbの間はスペースです。 ※bbb,ddd,fffはある一定のキーワードです。 ※ccc,eee,ggg,hhh,iii,jjjはバラバラの文字列で長さも一定ではありません。 【質問】 上記の文字列の中でddd=の後の文字列(eee,iii)のみを抜き出したいです。 以下のようなsedを試してみましたが、 eee:fff=ggg iii:fff=jjj が抜き出されてしまいます。 sed 's/.*:ddd=\(.*\):\(.*\)$/\1/' 恐れ入りますが、皆様の知恵をお貸し下さい。

  • EXELで困っています。どなたか助けてください!

    お世話になります。早速ですが・・・ 下記のような表があります。 ┌──────┬─-─┬─-─┬─-─┬─-─┬─-─┬─-─┬─-─┐ │分類項目・・・・│AAA │BBB │CCC │DDD │EEE │FFF │GGG │     ├──────┼─-─┴─-─┴─-─┴─-─┴─-─┴─-─┴─-─┤ │「、」区切り・・・│AAA、BBB、CCC、DDD、EEE、FFF、GGG        │ ├──────┼──────────────────────-─┤ │「 」区切り・・・│AAA BBB CCC DDD EEE FFF GGG        │     ├──────┼──────────────────────-─┤ │「,」区切り・・・・│AAA,BBB,CCC,DDD,EEE,FFF,GGG             │ └──────┴──────────────────────-─┘ ■不特定の分類項目(何が記入されるかわかりません)のAAなどの  項目を上図、および、下記のように自動的に変換というか、並べ  られるようにしたいと思っています。 (1)「、」区切り(全角句点区切り) (2)「 」区切り(全角スペース区切り) (3)「,」半角句点区切り ■【質問1】VBAマクロを使わず関数などの処理にてできない       ものでしょうか?   また、  【質問2】(1)上図で「、」で区切ったもの        (2)同様に「 」で区切ったもの        (3)同様に「,」 で区切ったもの        例えとして⇒○「AAA、BBB       」             ⇒×「AAA、BBB、、、、、、、」        このようにしたいのですが?   【質問3】いずれの場合も、その新しくできた文字列を他の        ソフトウェアにコピペしようとすると、関数の数式が        コピペされてしまします。        もちろんセルをワンクリックで選択すると、値だけが        コピペできます。        この点を初心者でも失敗(数式のコピペではなく)する        ことなく、値だけをコピペすることが可能でしょうか? どうかよろしくお願いいたします。 <( _ _ )> 

  • EXCELで複数行の検索

    初心者です。 Aファイルのaaa、bbbなどをキーに Bファイルを検索してできるだけ簡単にマクロ等使わずに 下記のような抽出をする方法があれば教えてください。 よろしくお願いします。 Aファイル aaa bbb ccc Bファイル(例えば「ddd」と「あ」は別セルです) ddd あ eee い aaa う fff え bbb お ggg か ccc き 結果 Aファイル aaa う bbb お ccc き