はじめましてこんばんはm(_ _)m
いろいろ検索してみましたが解決出来ませんでしたので何卒ご教授願います。
あるフリーのcgiを利用させてもらっているのですが一部改造したいと思っております。
cgiはフォームメール用で以下のプログラムによってhtml側のデータを読み取ってくれます。この時にhtml側のデータを全て読み取ってくれるのですが一部のみを抜粋して上から順に表示させたいと思います。
例えばhtml側が以下の3項目でこの順番だとして()内はNAMEです。
【html側】
質問=NAME属性(A)
名前=NAME属性(B)
電話=NAME属性(C)
これをメールで受け取った時に以下のメール文のようにNAME属性(B)が先頭に来るようにしたいのです。
【メール文】
(B)= 山田太郎
(C)=0123456789
(A)=好きな食べ物はイチゴ
(B)の行が上から何番目という様に指定する方法では出来るのですが複数ファイルがあり(B)の行番号が変動する為指定出来ません。
【html側】が以下のようになっているとして以下のプログラムはどのように指定すればよろしいですか?当方初心者の為質問内容が分かりにくいかと存じますが何卒よろしくお願いいたします。
質問=NAME属性(A)
名前=NAME属性(B)
電話=NAME属性(C)
foreach (0..$count-1) {
if ($DATA_V[$_] =~ /\n/) { &jis("$DATA_N[$_] =\n\n$DATA_V[$_]\n"); print OUT "$msg\n"; }
else { &jis("$DATA_N[$_] =$DATA_V[$_]"); print OUT "$msg\n"; }
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
HTML側の並び順で入力データが送られて来ることを期待して、ということであれば、
foreach (0..$count-1) { の前に、
push(@DATA_N,shift @DATA_N);
push(@DATA_V,shift @DATA_V);
を挿入すればよろしいかと思います。
okmotokun 様
度々のご指導ありがとうございます。プログラム追加してみましたところ1行目が最終行になりました!他にもいろいろいじってみたところ値のみが1行ずれたり項目のみがずれたり反対になったりといろいろ便利なプログラムなようです。教えていただき感謝いたします。
後、厚かましいようで大変申し訳ございませんがHTML側のソースが以下のように質問1~質問100くらいあり(この質問数は101個になったりいろいろ変動します)その後に名前や住所が来るのですがこの状況(住所の後も項目数が変動します)で【名前項目を最上部に持ってきて】その他の項目は表示順にさせたいのですが可能でしょうか?cgiプログラム1つを修正無しで使いまわして多数のHTMLページに対応させたいです。
何卒ご指導宜しくお願いします。
【HTMLソース】
<HTML>
<BODY>
<FORM method="POST" action="mailform.cgi">
質問1<INPUT SIZE="50" TYPE="text" NAME="q1">
~中略~
質問100<INPUT SIZE="50" TYPE="text" NAME="q100">
メールアドレス:<INPUT SIZE="50" TYPE="text" NAME="email">
名前<INPUT size="58" type="text" name="Name">
住所1<INPUT SIZE="50" TYPE="text" NAME="add1">
住所2<INPUT SIZE="50" TYPE="text" NAME="add2">
</FORM>
</BODY>
</HTML>
No.1
- 回答日時:
フォームに入力されたデータは、HTMLでの並び順(行番号順)に送られて来るとは限りません。
したがって、HTMLでの行番号順にメール本文を整形しても意図したようになるとはいえません。
データは、「識別名=入力値」という形で、これを「&」記号で繋げて送られてきます。
この場合ですと、A=質問&B=名前&C=電話 というふうに送られて来るわけです。順番は変わるかも知れません。
ですから通常は、フォーム要素の識別名(NAME)と同じ変数名に入力値を代入して後の処理するようにしています。
あるフリーのcgiを利用しているとのことですが、お使いのスクリプトはそのようになっていませんか。
okmotokun 様
早速のご指導ありがとうございます。すごく参考になります。
フリーのcgiは
&jis("--- ここから ---"); print OUT "$msg\n\n";
$count = @DATA_N;
foreach (0..$count-1) {
if ($DATA_V[$_] =~ /\n/) { &jis("$DATA_N[$_] =\n\n$DATA_V[$_]\n"); print OUT "$msg\n"; }
else { &jis("$DATA_N[$_] =$DATA_V[$_]"); print OUT "$msg\n"; }
}
&jis("--- ここまで ---"); print OUT "\n$msg\n";
となっております。これで一応HTML側の並び順でメールが送られて来ます。この場合どの様に記述を変更すればB=名前が一番上にきてそれ以外がHTML順に並びますか?
度々申し訳ございませんがご指導宜しくお願いしますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンの選択を反映させたい
-
一定人数で締め切りとなる予約...
-
ホームページでCGIのフォームを...
-
ビジネスメールの敬称
-
初歩的な事だと思います。 Sub...
-
Googleフォームを回答したか確...
-
エクセルVBA テキストボックス...
-
Excel-VBAでInputBox+Pulldown...
-
テキストボックスの番号を使っ...
-
エディットの入力チェック
-
数字以外の入力をエラーにする...
-
お問い合わせフォームから送信...
-
c#でTextBoxの入力制限
-
HTMLで全角文字のみ入力するに...
-
ExcelVBAのユーザーフォームで...
-
EXCEL VBA で指定した範囲に入...
-
ホームページビルダー20SPで...
-
DATE型変数を初期化する方法
-
VBAでInputBoxの再入力をさせる...
-
フォームを再送信しますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ホームページでCGIのフォームを...
-
CGIのメールフォームを、ウェブ...
-
ホームページビルダーでメール...
-
フォームメールの正しい使いかた
-
注文フォームページを作る際…
-
FC2のメールフォームの設置方法...
-
一定人数で締め切りとなる予約...
-
オートレスポンダーの設置方法...
-
一言メールフォームを設置したい
-
ソースネクスト
-
【GAS】Gmail本文をブラウザ表...
-
DWでメールフォームを作りたい!
-
注文フォームCGIについて。
-
CGIフォームに書いてある @ が...
-
フォームメール
-
freewebで設置できるお絵描き掲...
-
メールフォームCGIの設置方法に...
-
サーバーのエラーでおしえてく...
-
メールフォームで送れるデータ...
-
文字化け対策済みのメールフォ...
おすすめ情報