お世話になります。
表記の通りチェックボックスで複数選択するHTMLを次のように作成しました。
======== 送信元HTML =========
<FORM action='******.cgi' method='POST'>
<INPUT type='checkbox' name='Q6_ans' value='1'>
<INPUT type='checkbox' name='Q6_ans' value='2'>
<INPUT type='checkbox' name='Q6_ans' value='3'>
<INPUT type='checkbox' name='Q6_ans' value='4'>
<INPUT type='checkbox' name='Q6_ans' value='5'>
<input type=submit value='実 行'>
</FORM>
これを受取るPerl-CGIのコードをこうしました。
======== 受信するcgi =========
my @files_2 = split(/\0/,$in{'Q6_ans'});
for($i=0;$i<=4;$i++){
if($files_2[$i] ne ""){$d[6].=$files_2[$i]." , ";}
}
例えばチェックボックスで2と3を選ぶと$d[6]の値は「2 , 3 ,」となるつもりだったんですが、意に反し「23 ,」となります。
配列の値を調べると$files_2[0]に「23」が代入されて、$files_2[1]から$files_2[4]は空です。つまり「split(/\0/,$in{'Q6_ans'})」での分割がされていないようなのです。
何が原因で、どこが間違いなのでしょう。チェックボックスの値は\0で区切られていると思っているのですが、間違いでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#2です。
cgi-lib(ReadParse)を利用しているなら、\0で区切られた文字列として格納されているとう前提も、提示されてる分割、再連結のコードにも間違いはありませんので他の部分に問題があるとしか・・・
ReadParseでフォームデータを取り込んでから、
質問文にある処理にたどり着く間でデータを加工している部分(文字コード変換、エスケープ処理等々)があるのでしょうからそこを調べてみては。
No.2
- 回答日時:
>チェックボックスの値は\0で区切られていると思っている
フォームデータの取り込みにcgi-lib(ReadParse)を使っているならそうなりますね。
そうでなければ、$in{'Q6_ans'}【%in】にフォームデータを読み込むあたりの処理しだいです。
No.1
- 回答日時:
>チェックボックスの値は\0で区切られていると思っているのですが、間違いでしょうか?
それは、$in{}をどう読み込んでいたかにかかっていると思います。
多分cgiの中に、
read(STDIN, $???, $ENV{'CONTENT_LENGTH'});
と言う所があると思いますが、ここ付近でパラメータを読み込んでいます。
その後ろに、$in{}に読み込んでいる、
$in{'??'}.=$????;
みたいな所がありませんか?
この前後で\0の文字があるか、あるならどうしてるかにかかります。
上だけだと、ただ'23'になります。
もしもそうなら、ここを、
if($in{'??'} ne ''){$in{'??'}.='\0'}
$in{'??'}.=$????;
にすれば、\0で区切られます。
p.s.
前後の関係を見ないと、確かな事は言えませんが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Jcode を使った複数選択値の文...
-
機種依存文字の文字コード変換
-
デコード処理について
-
CSVファイルの中で、「 , 」カ...
-
pythonエラー
-
VBA 文字に半角が含まれて...
-
LINUX上でシリアル通信(C++)
-
英数字のみ全角から半角に変換
-
ACCESS VBA でのバイナリデー...
-
いまスマホからカードの申込み...
-
GoogleAppsScript文字列置換の...
-
正規表現でURLを抽出したいと思...
-
VBA 「,」・空白・カタカナ等...
-
パイソンエラーについて
-
csvデータのダブルクォーテーシ...
-
正規表現で、特定の文字列を含...
-
Encode.pmで「髙」(ハシゴ高)...
-
【PHP】全角記号を半角記号...
-
[Excel VBA] ODBCによる外部デ...
-
正規表現でパスワードのチェック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
InputMan の imTextについて
-
戻り値の意味がわかりません…
-
正規表現でカンマを対象にする方法
-
文字化けを元に戻せますか?
-
unicodeの表示
-
utf-8のマシンでsjisのデータフ...
-
ダブルクォート文字などをフォ...
-
チェックボックスの複数選択の...
-
jcodeを使ったgetcode
-
jcodeでsjisに変換できない
-
機種依存文字の文字コード変換
-
文字化けの事で?
-
特殊文字をPOSTした際の動作は?
-
テキストエリアに半角「\\」ま...
-
jcode.plについて
-
「数値文字参照への変換するソ...
-
文字実体参照が勝手に変換され...
-
常用漢字?でない文字を判定す...
-
Jcode を使った複数選択値の文...
-
Jcode.pmでの半角カナ→全角カナ...
おすすめ情報