※ ChatGPTを利用し、要約された質問です(原文:エラーが出ます。どこが間違っているのでしょうか??)
エラーが出ます。どこが間違っているのでしょうか?
このQ&Aのポイント
フォームから入ってきた値を%prof1に入れ、そのうち$prof1{mail}の値に入っていたアドレスに向けて「http」という文章をメールで送るスクリプトのはずなのですが、ロリポップに上げて試行してみたところエラーが出ました。
自ウェブサーバで確認したところ、($key, $val) = split(/=/); の行でエラーが出たのですが、どこが間違っているのかさっぱりわかりません。どこをどう直せばうまく動くのでしょうか?
分かる方いらっしゃったらよろしくお願いします。なお、後ろの方のPrint~というのはサブルーチンです。
エラーが出ます。どこが間違っているのでしょうか??
以下のスクリプトについて質問があります。フォームから入ってきた値を%prof1に入れ、そのうち$prof1{mail}の値に入っていたアドレスに向けて「http」という文章をメールで送るスクリプトのはずなのですが、ロリポップに上げて試行してみたところエラーが出ました。自ウェブサーバで確認したところ、($key, $val) = split(/=/); の行でエラーが出たのですが、どこが間違っているのかさっぱりわかりません。どこをどう直せばうまく動くのでしょうか??分かる方いらっしゃったらよろしくお願いします。なお、後ろの方のPrint~というのはサブルーチンです。
#!/usr/bin/perl
$PATH_SENDMAIL = '/usr/lib/sendmail';
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
# クエリデータを要素ごとに分解し、@queryの配列に入れる
local(@query) = split(/&/, $query);
# @queryのnameとvalueを、%prof1のハッシュに入れる
foreach (@query) {
# name=valueを分け、それぞれ$key、$valに代入
($key, $val) = split(/=/);
# name=valueを、%prof1のハッシュにセット
$prof1{$key} = $val;
}
#----------------------------------
# 指定メールアドレスにメールを送る
#----------------------------------
$mail = $prof1{"mail"};
#----------------------------------
open(MAIL, "| $PATH_SENDMAIL -t -f'$mail'") or PrintError('サーバートラブルでメールの送信ができませんでした。');
print MAIL<< "____END_OF_MAIL";
From: noname
To: $mail
Subject: notitle
------
http
____END_OF_MAIL
close(MAIL);
#----------------------------------
PrintHeader('メール送信完了');
print "メールを送信しました。";
PrintFooter();
#----------------------------------
お礼
回答ありがとうございます!まさにおっしゃるとおりでした。実はnatsuki_tkさんが回答してくださる前に自力で解決出来たのですが、数時間要しました・・。貴殿のように、上のソースを見るだけで分かる域まで達するのはまだまだ時間がかかりそうです笑