2016-11-16 8 views
0

HTMLフォームからメッセージを送信しようとしています。しかし何らかの理由で私は何も得ていない。誰かが私を助けてくれますか?ここでphpとhtmlでメールを送信する方法

は私のHTMLフォームです:

<form method="post" action="subb.php"> 
    <div class="field half first"> 
     <label for="Name">Name</label> 
     <input type="text" name="Name" id="name" /> 
    </div> 
    <div class="field half"> 
     <label for="Email">Email</label> 
     <input type="text" name="Email" id="email" /> 
    </div> 
    <div class="field"> 
     <label for="Message">Message</label> 
     <textarea name="Message" id="message" rows="5"></textarea> 
    </div> 
    <ul class="actions"> 
     <button type "submit" name="submit" id="submit" class="button submit">Send message</button> 

とPHP:

<?php 
    $Name = $_POST['Name']; 
    $Email = $_POST['Email']; 
    $Message = $_POST['Message']; 

    $to = "[email protected]"; 
    $subject="new message"; 

    mail($to , $subject , $Message, "From :" . $Name . $Email); 

    echo "Your message has been Sent"; 
?> 

私はPHPファイルsubb.phpの名前と同じディレクトリではなく、そのはまだいくつかのために働いていないの両方にそれらを列挙されています理由。どんな助力も非常に感謝しています。

+0

'subb.php'にw 'mail'の前に' exit(print_r($ _POST、true)) 'を実行すると期待されるデータが表示されますか? – RamRaider

+0

送信ボタンがあると思いますか? –

+0

'

+0

どうすればこのことが助けになるのか分かりません。 – RamRaider

+0

メールは真または偽を返します。if($ mail){echo "OMG IS WORKED"} else {echo "Error!"}; –

+0

私は通常、ヘッダー呼び出しでリダイレクトし、ページにエラーを受け取り、フォームに表示させます。あなたのためにコードに追加 –

1

何かがmail($to , $subject , $Message, "From :" . $Name . $Email);

Mail関数の構文間違っていた:

mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

ので、

<?php 
if(isset($_POST['submit'])) { 
    $Name = $_POST['Name']; 
    $Email = $_POST['Email']; 

    $Message = "Name : ".$Name."<br />" 
    $Message .= $_POST['Message']; 

    $to = "[email protected]"; 
    $subject="new message"; 

    // To send HTML mail, the Content-type header must be set 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

    // Additional headers 
    $headers .= 'To: Name <$to>' . "\r\n"; 
    $headers .= 'From: $Name <$Email>' . "\r\n"; 
    $headers .= 'Cc: [email protected]' . "\r\n"; 
    $headers .= 'Bcc: [email protected]' . "\r\n"; 


    if(mail($to, $subject, $Message, $headers)) { 
     echo "Your message has been Sent"; 
    } else { 
     echo "Mesage Error"; 
    } 
} 
?> 

注:PHPMailer

のような注入をヘッダに脆弱防ぐためにすべてのメールライブラリを使用します
+0

あなたのコードはヘッダインジェクションに脆弱です。 – PeeHaa

+1

1)適切なメールライブラリを使用する2)? 3)? 4)利益 – PeeHaa

関連する問題