電子書籍の厳選無料作品が豊富!

こんにちは。早速ですが現在下記のようなメールフォームを作成しているのですが、
<%
'On Error Resume Next

If Len(Request("name")) = 0 then
Response.Write "お名前が入力されていません。" & "<br>"
Response.Write "前ページへ戻るボタンを押して下さい。" & "<br>"
Response.Write "<br>"
Response.Write "<input type='button' value='前ページへ戻る' onclick='JavaScript:history.go(-1);'>" & "<br>"
ElseIf Len(Request("mail")) = 0 then
Response.Write "メールアドレスが入力されていません。" & "<br>"
Response.Write "前ページへ戻るボタンを押して下さい。" & "<br>"
Response.Write "<br>"
Response.Write "<input type='button' value='前ページへ戻る' onclick='JavaScript:history.go(-1);'>" & "<br>"
ElseIf Len(Request("message")) = 0 then
Response.Write "お問い合わせ内容が入力されていません。" & "<br>"
Response.Write "前ページへ戻るボタンを押して下さい。" & "<br>"
Response.Write "<br>"
Response.Write "<input type='button' value='前ページへ戻る' onclick='JavaScript:history.go(-1);'>" & "<br>"
else
'メール送信
Set bobj = Server.CreateObject("basp21") ' ASP

svname = "xxxx" ' <== smtp サーバマシン名
mailto = "xxxxx" ' 宛先
mailfrom = "xxxxx" '差出し人
subj = "お問い合わせフォームより"' 件名
body = "お名前      :"& Request("name") & vbCrLf _
& "電話番号     :"& Request("phone") & vbCrLf _
& "メール      :"& Request("mail") & vbCrLf _
& "お問い合わせ内容 :"& Request("message") & vbCrLf

file = ""
rc = bobj.SendMail(svname,mailto,mailfrom,subj,body,file)
if rc <> "" then' エラーチェック
'エラー!
Response.Write "エラーで送信できませんでした。" & rc & "<br><br>"
else

Response.Write "お問い合わせありがとうございました。" & "<br>"
Response.Write "メールを確認次第ご連絡させていただきます。" & "<br>"
end if
end if
%>
ここで入力させた内容を一度確認画面を出して、送信を行いたいと思うのですが、フォームの引き継ぎ方が分かりません。
どうぞ皆様のお力をお貸し下さい。
宜しくお願いします。

A 回答 (2件)

お世話になります。


以下に簡単な 3 つの ASP を書きました。
実際にメールの送信などは行いませんが
Session を使った画面間の値の引き渡しはお分かりになるかとお思います。

mailSend1.asp … 入力画面
mailSend2.asp … 確認画面
mailSend3.asp … 完了画面

■以下は簡単なプログラムの説明です。

mailSend1.asp は 自分自身が生成した HTML から POST されたときに
リクエスト変数ないの値チェックを行って、値に不備がある場合は、エラーメッセージを表示して画面遷移しません。
逆にエラーがない場合は、Session に入力された値を入れて、確認画面へ画面遷移します。

mailSend2.asp は Session の mailSend1.asp によって入れられた値を表示します。
mailSend2.asp は 自分自身が生成した HTML から POST されたときに完了画面へ遷移します。

mailSend3.asp は Session 上のすべての値を破棄して初期化します。

■以下は 3 つの ASP です。
' ---------- 入力画面(mailSend1.asp)----------
<%
Dim errorMessage
If (Request.Form("mailSend1_postback") <> "") Then
  ' 変数のチェックなど
  errorMessage = ""
  If Request.Form("toAddress") = "" Then
    errorMessage = "<font color=red>送信先メールアドレスが入力されていません</font><br>"
  End If
  If Request.Form("fromAddress") = "" Then
    errorMessage = errorMessage & "<font color=red>送信元メールアドレスが入力されていません</font><br>"
  End If
  If errorMessage = "" Then
    ' 確認画面へ遷移する
    Session("toAddress") = Request.Form("toAddress")
    Session("fromAddress") = Request.Form("fromAddress")
    Session("subject") = Request.Form("subject")
    Session("message") = Request.Form("message")
    
    Response.Redirect("mailSend2.asp")
  Else
    errorMessage = errorMessage & "<br>"
  End If
End If
%>
<html>
<head>
<title>メール送信:入力</title>
</head>
<body>
<form name="mailInput" method="post" action="mailSend1.asp">
<%=errorMessage %>
送信先メールアドレス:<input type="text" name="toAddress" /><br>
送信元メールアドレス:<input type="text" name="fromAddress" /><br>
件名:<input type="text" name="subject" /><br>
本文:<textarea type="text" name="message" ></textarea><br>
<input type="hidden" name="mailSend1_postback" value="true">
<input type="submit" value="確認へ">
</form>
</body>
</html>
' ---------- 確認画面(mailSend2.asp)----------
<%
If (Request.Form("mailSend2_postback") <> "") Then
  ' メール送信処理など
  ' 完了画面へ遷移する
  Response.Redirect("mailSend3.asp")
End If
%>
<html>
<head>
<title>メール送信:確認</title>
</head>
<body>
<form id="mailConfirm" method="post" action="mailSend2.asp">
送信先メールアドレス:<%=Session("toAddress") %><br>
送信元メールアドレス:<%=Session("fromAddress") %><br>
件名:<%=Session("subject") %><br>
本文:<%=Replace(Session("message"), vbCrlf, "<br>") %><br>
<input type="hidden" name="mailSend2_postback" value="true">
<input type="submit" value="完了へ">
</form>
</body>
</html>
' ---------- 完了画面(mailSend3.asp)----------
<%
' セッション情報破棄
Session.Abandon
%>
<html>
<head>
<title>メール送信:完了</title>
</head>
<body>
<p>送信しました。</p>
</form>
</body>
</html>
    • good
    • 0

お世話になります。



Session を使うのが簡単かもしれません。
Session
http://www.site-cooler.com/kwl/asp/12.htm

この回答への補足

naganaga_001様
早速のご回答ありがとうございます。
参考サイトを拝見してみたのですが、実はまだASPをやり始めたばっかりで、このフォームも拾ってきたものです。Sessionの使い方がよくわかりませんので、ご指導いただけたらと思います。
よろしくお願いします.

補足日時:2007/11/10 15:07
    • good
    • 0

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