2012-01-15 37 views
0

send.phpがアクセスされているように見え、空白のメールを送信しています。送信ボタンがフォーム上で使用されていない限り、send.phpが電子メールを送信しないようにする必要があります。私は 'isset $ _post'が私を助けてくれると言われましたが、それを実行する方法は明確ではありません。ここでPHPお問い合わせフォーム空白のメール

はsend.phpコードです:

<?php 

$recipient = '[email protected]'; 

$email  = $_REQUEST['Email']; 

$subject = 'Contact Form Submission'; 

$content = "The following has been submitted on your website \n\n"; 

$redirect = 'thankyoupage.html'; 

$user = $_REQUEST['Email']; 
$usersubject = "Subject"; 
$userheaders = "From: [email protected]\n"; 
$usermessage = "Blah blah blah"; 
mail($to,$subject,$message,$headers); 
mail($user,$usersubject,$usermessage,$userheaders); 

foreach($_POST as $k=>$v) 
    { 
     $content .= "$k: $v\n\n"; 
    } 

mail_it(stripslashes($content), $subject, $email, $recipient); 

if (isset($_POST['redirect'])) 
    { 
     header("Location:".$_POST['redirect']); 
    } 
     else 
    { 
     header("Location: $redirect"); 
    } 

function mail_it($content, $subject, $email, $recipient) 
    { 

     $headers .= "From: ".$email."\n"; 
     $headers .= "Reply-To: ".$email."\n"; 

     if ($bcc) $headers .= "Bcc: ".$bcc."\n"; 

     $headers .= "X-Priority: 0\n"; 
     $headers .= "X-Mailer: bjm Formmail \n"; 
     $message = $content."\n\n"; 

     if(!mail($recipient, $subject, $message, $headers)) 
     { 
      echo "Sorry - an error occured trying to send the mail"; 
     } 

    } 

?> 
+0

それを止めるのだろうか?意味 – cbarg

+0

<= "EMF形式" のenctype = "マルチパート/フォームデータ" METHOD = "POST" をonSubmit = "validateFormを返す()" アクション= "send.php" NAME = "フォーム" フォームID>は、doesnの仕事はありません。他のif文のために問題が発生すると考えてください。試してみてください:<?php if($ _SERVER ['REQUEST_METHOD'] === 'POST'):?>一番上にあり、動作しません。 – pepsipaul

答えて

0

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
    ... 
} 
+0

素晴らしい、完璧に働いた! – pepsipaul

0

あなたはヘッダ行の末尾に\r\nを使用する必要があります。しかし、ヘッダーが1つしかない場合、ヘッダーはまったく必要ありません。

0

ポストリクエストがあるときにのみコードが実行されるようにする必要があります。誰かが送信ボタンをヒットした場合にのみ、メールを送信したい場合は、単にこの

を使用
if (isset($_POST['submit'])){ 
    send_mail();  //and define send mail somewhere else 
} 
+0

ことを試み – pepsipaul

0

あなたがリクエストメソッドがPOSTた天気をチェックする必要があります:あなたには、すべてをラップすることによってそれを行うことができます。もしそうなら、あなたは電子メールを送信する必要があります

<?php 

$recipient  =   '[email protected]'; 

$email      =   $_REQUEST['Email']; 

$subject    =   'Contact Form Submission'; 

$content    =   "The following has been submitted on your website \n\n"; 

$redirect   =   'thankyoupage.html'; 

$user = $_REQUEST['Email']; 
$usersubject = "Subject"; 
$userheaders = "From: [email protected]\n"; 
$usermessage = "Blah blah blah"; 


foreach($_POST as $k=>$v) 
    { 
        $content .= "$k: $v\n\n"; 
    } 

if($_SERVER["REQUEST_METHOD"] == "POST") { 
     mail_it(stripslashes($content), $subject, $email, $recipient); 
} 

if (isset($_POST['redirect'])) 
    { 
        header("Location:".$_POST['redirect']); 
    } 
        else 
    { 
        header("Location: $redirect"); 
    } 

function mail_it($content, $subject, $email, $recipient) 
    { 

        $headers .= "From: ".$email."\n"; 
        $headers .= "Reply-To: ".$email."\n"; 

        if ($bcc) $headers .= "Bcc: ".$bcc."\n";  

        $headers .= "X-Priority: 0\n"; 
        $headers .= "X-Mailer: bjm Formmail \n"; 
        $message = $content."\n\n"; 

        if(!mail($recipient, $subject, $message, $headers)) 
        { 
            echo "Sorry - an error occured trying to send the mail"; 
        } 

    } 

?> 

をこれは、すべてが起こる可能:

if($_SERVER["REQUEST_METHOD"] == "POST") { 
     mail_it(stripslashes($content), $subject, $email, $recipient); 
} 
0

は、PHPスクリプトにこれを追加します。

if ($Name == '') 
{ 
    die("<p align='center'><font face='Arial' size='6' color='#FF0000'>Please use our<a href=''> contact form</a> to send a message to us</font></p>"); 
} 

は、直後にそれを追加します

$Name = Trim(stripslashes($_POST['Name'])); 
$Email = Trim(stripslashes($_POST['Email`enter code here`'])); 
$Tel = Trim(stripslashes($_POST['Tel'])); 
$Message = Trim(stripslashes($_POST['Message'])); 

空白の電子メールを取得している場合誰かがwww.yousite.com/contactsend.php

のようにブラウザからaction="contact.php"スクリプトを実行しているこのコードは上記の方法をあなたはsend.phpを呼び出している

関連する問題