No.1ベストアンサー
- 回答日時:
HTMLからSubmitを行って、Perlで取得したいということですか?
送信には、GETとPOSTがありそれぞれ処理が少し違います。
また、日本語を受け取る場合は変換を行わなければなりません。
./
├/html/
+--- test.html(submitがある)
└/cgi-bin/
+--- test.cgi
となっているとして、
html側では
<form action="../cgi-bin/test.cgi" method="get">
<input type="text" name="data1" value="test">
<input type="text" name="data2" value="aiueo">
<input type="submit" value="送信">
</form>
となっている場合、GET送信では、送信ボタンを押したとき
http://~/cgi-bin/test.cgi?data1=test&data2=aiueo …
というアドレスにアクセスされます。
具体的に言えば、1つのinputタグのデータが name=value という形で構成され、すべてのデータ分 & でくっついています。
そして、formタグの action 要素で指定したCGIの最後に ? が付いて、連結されます。
また、別にPOST送信というものがありますが、GETとは少し違う部分もあるので省きます。
参考URL:http://www.futomi.com/lecture/form/
No.2
- 回答日時:
No.1です。
コードを書くときのアドバイスです。
formタグの method 要素で GET を指定した場合、CGIに送られてきた *.cgi? 以降の文字列は、環境変数 $ENV{'QUERY_STRING'} に格納されています。
(POSTの場合は調べてください)
$ENV{'QUERY_STRING'}は、
name1=value1&name2=value2& ...
となっているので、
まず & で分割します。
#split関数
その後、各分割したものに対して、= で分割し、
name の部分を格納している変数を $name
value の部分を格納している変数を $value
とします。
valueで送られてきたデータは、日本語を含む場合エンコードされて送られてきます。
これをデコードする方法は調べてください。
また、半角スペースが含まれている場合、半角の + に置き換えられます。
従って
$value =~ tr/+/ /;
という処理をして、半角スペースに戻します。
最後に、扱いやすいように連想配列に格納します。
$input_data{$name} = $value;
大体こんな感じ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- 英語 描写述語の条件(本来の性質、一時的な属性、又は両方)について 2 2022/07/25 13:41
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- その他(プログラミング・Web制作) このWEB用語、WEB文章、意味が分かりますか? 理解できない人が多いようなんですが・・・ 7 2022/10/22 09:13
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- iPhone(アイフォーン) gmail をpcとiPhoneで使っていますが、PCから送ったメールがiphoneに反映されません 3 2023/07/25 10:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
エクセルVBA:日付データの変換...
-
pythonでDBのカラム名で取得し...
-
stable diffusionのエラー
-
'dataType' 引数を Null にする...
-
C#でのswitch文
-
エクセルシート名の制限を変更...
-
Excel VBA メール作成について ...
-
:(コロン)のKeyCode
-
SQLで1バイト、2バイト混在...
-
COBOLのCOMP形式について
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
Excel 1セル当りの文字数が2...
-
バイト列とバイナリ列の違いが...
-
異なるドメインのサイトでcooki...
-
LWP::Simple;でWebページを取得...
-
バイナリとBCDコード
-
DataGridViewの特定列に入力さ...
-
VBScripの2次元動的配列
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
【Excel VBA】10進数を2進数に...
-
エクセルVBA:日付データの変換...
-
10個の実数に対する降順ソート...
-
C#でのswitch文
-
int型(2バイト)データの分割
-
linuxのシェルでファイル名に先...
-
CreateProcessでの環境変数の設...
-
C言語 ファイル内のデータと入...
-
'dataType' 引数を Null にする...
-
Cのプログラムがどうしても動き...
-
テキストファイルの結合について
-
RegQueryValueExでの2バイト文字
-
C言語でのLinuxとwindows共通の...
-
ファイルから読み込むC言語の問題
-
c言語での wavファイルの編集(...
-
マクロ登録したピボットが重い...
-
python 気象データの取得
おすすめ情報