プロが教える店舗&オフィスのセキュリティ対策術

●やりたいこと
PDFにアクセスする(した)人(A)の情報を入手(B)したい

●ホームページの構成
1.(A)必要事項にチェック・e-mailアドレスを入力後、Submitボタンを押す
2.必要事項とメールアドレスが指定のe-mailアドレス(B)に届く
3.(A)は希望のPDFファイルを開けられる

●問題点
JavaScriptで作成しているのですが、
(A)がSubmitボタンを押すと
「このフォームはe-mailを経由して送信されます。送信することによりあなたのe-mail addressがわかりますし、暗号化せず送られますので危険です。送信しますか?(英文)」と表示されます。
YES → (B)にメールが来て(A)はPDFを見れます。
NO → (B)にメールがこないにもかかわらず、(A)はPDFを見れます。

(A)の情報を見たいので、NOにした場合はPDFのリンク先に飛ばないようにしたいのですが、どのようにすればよいでしょうか?

以下使っているタグです。

●HEAD

<SCRIPT Language="JavaScript">
<!--
function checkField(){
if (document.Form1.PURPOSE.value == ""||document.Form1.EMAIL.value == ""){
alert("必須項目が入力されていません。");
return false;
}
location.href="pdf.htm";
}
//-->
</SCRIPT>

●body

<FORM Name="Form1" METHOD="POST" ACTION="mailto:***@****.com subject=プレゼン請求" onSubmit="return checkField()" ENCTYPE="TEXT/PLAIN">


教えてください。
よろしくお願いします。

A 回答 (1件)

> NO → (B)にメールがこないにもかかわらず、(A)はPDFを見れます。



そりゃ、そうでしょう(^_^;)

ここで質問されている内容は、「暗号化されていないけれど、メールを送っても大丈夫?」と言うこと*だけ*を聞いているのであって、次の処理に移動する? って聞いているのではないのです。
メールを送信しなくても、メールアドレスなどが空で無いのだからlocation.href="pdf.htm"; が実行されるのが当たり前の流れですよね?
location.href="pdf.htm"; の前で、「メールは送信されたか?」と聞くことができれば良いのでしょうけど。

要するに、発想点がズレているのです。


さて。本題に入りましょう。

結論から言って、こう言う処理は JavaScript 向きの処理ではありません。JavaScript と言うのはクライアントサイドで動作するものです。しかし、PDFファイルのダウンロードはサーバーサイドで制御すべき事ですよね。
なので、JavaScriptではなくて、CGIやPHPを使ってメールフォームを作成し、メール送信処理が終了した時点で、ダウンロードページへ遷移する様に作るのが妥当です。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。やはりCGI/PHPですよね。「発送点がズレている」思わず笑ってしまいました~。無知をさらけ出してしまった感じ~。
もっと勉強します。ありがとうございました。

お礼日時:2004/03/25 13:42

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