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

A 回答 (3件)

パソコンのホームページからやってみてもi-modeのホームページからやってみてもCGIでの取り出しには問題でませんね~。

(^_^;(共に自作)
後はReadParseの辺りでしょうか。
お手数ですが今度はReadParse以降、取り出した値の変数への格納のあたりを記載して頂けますか?
尚、先程のソースの中で実際に「山田(実際には山田 太郎)」が入る部分はどこでしょう。
併せて補足お願いします。
    • good
    • 0

すみません、ちょっと時間が押しているので詳しくは後ほど・・・。

(^_^;
とりあえず下記は大丈夫でしょうか?

print <<EOF  → print <<EOF;

御確認下さい。

この回答への補足

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

補足日時:2001/09/08 13:05
    • good
    • 0

CGI側の入力値取り出し処理周りを見ないと何とも言えません。


通常なら空白で途切れたりしないと思いますが・・・。
まずは一部で結構ですので該当するソースを補足欄に載せて下さい。
それと使用しているのはPOSTですか、GETですか?
宜しくお願いします。

この回答への補足

まず、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)
いかがでしょう?

補足日時:2001/09/08 12:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング