• 締切済み

フォームからの送信で・

perlでフォームから送信する際にまず、htmlから記入してCGIを呼び出し確認画面を出します。 その次に送信となるのですが記入フィールドに空白があると空白から先が削除されて送信されてしまいます。 例えば 山田 太郎と送信しようとすると空白の後が削除され山田で送信されます。 これはどう対処すればいいでしょうか? $hoge =~ s/ /hoge/g;な形でエンコードすればいいのでしょうか? お教えください。

みんなの回答

  • natural
  • ベストアンサー率37% (419/1115)
回答No.3

パソコンのホームページからやってみてもi-modeのホームページからやってみてもCGIでの取り出しには問題でませんね~。(^_^;(共に自作) 後はReadParseの辺りでしょうか。 お手数ですが今度はReadParse以降、取り出した値の変数への格納のあたりを記載して頂けますか? 尚、先程のソースの中で実際に「山田(実際には山田 太郎)」が入る部分はどこでしょう。 併せて補足お願いします。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.2

すみません、ちょっと時間が押しているので詳しくは後ほど・・・。(^_^; とりあえず下記は大丈夫でしょうか? print <<EOF  → print <<EOF; 御確認下さい。

k_barrel
質問者

補足

ごめんなさい下記は記述ミスでした。^^ EOFの部分は問題ありません。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

CGI側の入力値取り出し処理周りを見ないと何とも言えません。 通常なら空白で途切れたりしないと思いますが・・・。 まずは一部で結構ですので該当するソースを補足欄に載せて下さい。 それと使用しているのはPOSTですか、GETですか? 宜しくお願いします。

k_barrel
質問者

補足

まず、methodはpostです。 処理としましては、 <input type=hidden name=hoge value=abc>で次の処理に渡します。 ここで $message = print <<EOF 名前 $hoge 内容 $etc・・ EOF と、送信内容を$meaageに入れ、下記処理にと続きます。 &jcode'convert(*message,'jis'); open(MAIL, "|$sendmail -t") || &error("失敗"); print MAIL "To: $a\n"; print MAIL "From: $b\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Subject: abc\n"; print MAIL "$message\n"; close(MAIL) いかがでしょう?

関連するQ&A