OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

単純なお問い合わせフォーム

  • すぐに回答を!
  • 質問No.132540
  • 閲覧数43
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 8% (10/125)

お問い合わせのフォームを作り、確認、最後にメールを飛ばす仕組みを作っているのですが、メールにインプットされたデータが入ってこない状態で届きます。どうか助けてください。(息切れ)
*下記参照
#フォームの情報を初めに格納する所 省略
#-------------------------------↓
if ( $ACT eq 'ckt' ){
&kakunin;
}
elsif ( $ACT eq 'ckt2' ) {
open (KEIJI, "<keijiban.dat") || die "File 'keijiban.dat' Open Error.";
# ファイルの内容を1行単位ですべて配列allに読み込む
@all = <KEIJI>;
# すべてのデータについて繰り返す
foreach (@all){
# 1行の文字列をコロンを目印にして項目に分割する
($firstname) = split(/:/, $_);
# 1件分のデータを表示するサブルーチン
&sendmail;
}
close(KEIJI);
#------------------------------------↑
sub kakunin{
$new_data = "$firstname\n";
&jcode'convert(*new_data, 'sjis');
open(KEIJI, "<keijiban.dat") || die "File 'keijiban.dat' Open Error.";
# 過去のデータを全て配列に読み込む
@all_data = <KEIJI>;
close(KEIJI);
# 配列の先頭に新規データを追加
unshift(@all_data, $new_data);
open(KEIJI, ">keijiban.dat") || die "File 'keijiban.dat' Open Error.";
#flock(KEIJI, 2);
# (新規データ+過去データ)をファイルに上書き
print KEIJI @all_data;
#flock(KEIJI, 8);
close(KEIJI);
# 書きこみ完了メッセージ
&write_ok;
exit;
}
sub sendmail {
#以下省略メール送信プログラム
exit;
}
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

とりあえず質問内容と記載されているソース部分が合致していない気がします。 まずはフォームの値読み出し(ReadParse)から加工と、実際のメール送信部分を記載された方が良いですよ。(^_^) ...続きを読む
とりあえず質問内容と記載されているソース部分が合致していない気がします。
まずはフォームの値読み出し(ReadParse)から加工と、実際のメール送信部分を記載された方が良いですよ。(^_^)
補足コメント
gcc

お礼率 8% (10/125)

サブルーチン全部のソースを下記に示しました。
全体的な動きは最初に書いたとおりになっています。
ちなみに一時データ格納場所は*.dataファイルに格納することになっています。

●補足1
&ReadParse(*in);

#フォームの情報を初めに格納する所
$ACT = "$in{'ACT'}";
$name = 'お問合せ';
$from = "$in{'from'}";
$subject = 'お問合せ';
$body = 'お問合せ';
#●オリジナル挿入開始
$firstname = "$in{'firstname'}";
$to = 'love-0720@nifty.com';

●補足2
sub sendmail {

#送信前処理
&jcode'convert(*subject,'jis');
&jcode'convert(*body,'jis');

# send mail
open(MAIL, "| /usr/lib/sendmail -t");
print MAIL "TO: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-Type: text/plain;\n\n";
print MAIL "\n";
print MAIL "---------------------------------------------\n";
print MAIL " 名前:$name\n";
print MAIL " 内容:$body\n";
print MAIL " お名前:$firstname $secondname\n";
print MAIL " かな:$kanafirstname $kanasecondname\n";
print MAIL " 所在都道府県 :$area1 $area2\n";
print MAIL " 電話番号:$telno\n";
print MAIL " 性別:$sex\n";
print MAIL " メールアドレス:mailto:$mailad\n";
print MAIL "お問合わ、ご相談内容:";
print MAIL " $con1\n";
print MAIL "---------------------------------------------\n";

close(MAIL);
投稿日時 - 2001-09-09 17:19:45
  • 回答No.2
レベル13

ベストアンサー率 37% (419/1115)

外していたらごめんなさい。(^_^; ReadParse(*in);以下の処理   ↓ ReadParse; while(($k,$v) = each %in) {  &jcode'convert(*v,"sjis");  $in{$k} = $v; } #フォームの情報を初めに格納する所 $ACT = "$in{& ...続きを読む
外していたらごめんなさい。(^_^;

ReadParse(*in);以下の処理

  ↓

ReadParse;

while(($k,$v) = each %in)
{
 &jcode'convert(*v,"sjis");
 $in{$k} = $v;
}

#フォームの情報を初めに格納する所
$ACT = "$in{'ACT'}";
$name = 'お問合せ';
$from = "$in{'from'}";
$subject = 'お問合せ';
$body = 'お問合せ';
#●オリジナル挿入開始
$firstname = "$in{'firstname'}";
$to = 'love-0720@nifty.com';

としてみて下さい。

尚、念のためsendmailの

print MAIL "TO: $to\n"; も

  ↓

print MAIL "To: $to\n";

にしておいて下さい。

また、print MAIL "Content-Type: text/plain;\n\n"; の前に

print OUT "Content-Transfer-Encoding: 7bit\n";

があった方が良いかもしれません。

お試し下さい。

#本当はopen(MAIL, "| /usr/lib/sendmail -t"); にもエラー処理があった方が良い様な気がしますが・・・。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ