2

1分間動作しましたが、動作を停止するために何をしたかわかりません。送信時に別のページに移動しますが、メールはまったく活動しません。

HTML

<form id="contact_form" action="sendemail.php" method="post">
    <p><label>Name:<br />
        <input type="text" name="name" class="textfield" value="" />
    </label></p>

    <p><label>Email: <br />
         <input type="text" name="email" class="textfield" value="" />
    </label></p>

    <p><label>Phone Number: <br />
        <input type="text" name="phone" class="textfield" value="" />
    </label></p>

    <p><label>Detail: <br />
        <textarea name="detail" class="textarea" cols="45" rows="5"></textarea>
    </label></p>

    <p><input type="submit" name="submit" class="button" value="Submit" /></p>
</form>

PHP

<?php 
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$phone = $_REQUEST['phone'];
$detail = $_REQUEST['detail'];

$message = "Name: $name\nEmail: $email\nPhone Number: $phone\nDetail: $detail" ;

mail( "myemail@gmail.com", "You have recieved a message", "Information Requested:\n\n$message", "From: $email") ;

header( "location: http://mywebsite.com/thanks.html" );

?>
4

7 に答える 7

0

あなたが使用できる

<?php    
if(isset($_POST['submit'])){    
$name = $_POST['name'];
... other info
$message = "Name: $name\nEmail: $email\nPhone Number: $phone\nDetail: $detail";
mail( "myemail@gmail.com", "You have recieved a message", "Information Requested:\n\n$message", "From: $email") ;
   header( "location: http://mywebsite.com/thanks.html" );
}
?>
于 2012-07-16T01:10:46.267 に答える
0

多くのサーバーには、I/O 電子メールの制限があります。コードを試しているときに一度起こりました。たぶんこれだけか、オースティンが言ったように、メッセージがあなたのメールアドレスのスパムフォルダに送られているのかもしれません。

ウェブサーバーのログをチェックして、詳細情報が含まれているかどうかを確認してください。

于 2012-07-15T23:01:09.713 に答える
0

ヘッダーを定義し、いくつかの改善を行う必要があります。次のコードを使用してみてください。

// As you know that you form uses POST method, you can use $_POST instead of $_REQUEST
$name   = $_POST['name'];
$email  = $_POST['email'];
$phone  = $_POST['phone'];
$detail = $_POST['detail'];

// Headers
$headers  = "From: =?utf-8?B?".base64_encode ('Sender Name')."?= <sender@email.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";

// As the content is HTML, you shoud use <br /> instead of \n to break line
$message = "Name: $name<br />Email: $email<br />Phone Number: $phone<br />Detail: $detail" ;

// Trying to send the message
if ( mail('to@email.com', "=?utf-8?B?".base64_encode('Message subject')."?=", $message, $headers) )
    header( "location: http://mywebsite.com/thanks.html" );
else
    echo 'Message fail';
于 2012-07-15T23:13:44.930 に答える
0

ジャンク/スパムフォルダを確認してください。メッセージが表示されない場合は、次のコードを試してください。

<?php
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$phone = $_REQUEST['phone'];
$detail = $_REQUEST['detail'];

$message = "Name: $name\nEmail: $email\nPhone Number: $phone\nDetail: $detail" ;

var_dump( mail( "myemail@gmail.com", "You have recieved a message", "Information Requested:\n\n$message", "From: $email") );

//header( "location: http://mywebsite.com/thanks.html" );
?>

メールが正常に送信された場合は が返され、送信に失敗した場合bool(true)は が返されます。bool(false)

また、メールアドレスが正しいことを再確認してください...

于 2012-07-15T23:14:01.727 に答える
0

エラーはありますか?使っini_set('display_errors', true)て見る。


に変更$_REQUESTする必要があります。これは、データの送信元 (GET、POST、または COOKIE) がわからない場合に使用する必要があるためです$_POST$_REQUESTフォームのメソッドを POST として指定したため、POST からのデータが表示されます。

isset()またはを使用して、これらの変数が設定されているかどうかも確認する必要がありますempty()


@ Marcio Simao
スクリプトが機能するためにヘッダーは必要ありません。オプションのパラメータです。

于 2012-07-15T23:22:52.590 に答える
0

bool(true)表示される場合、これは HTML が原因である可能性がありますvar_dump()...

ラベルから入力フィールドを出力しようとします...通常、ラベルは次のフィールドに使用されます.ラベルタグの下にフィールドを配置しないでください...次のように:

<p><label>Name:<br />
    <input type="text" name="name" class="textfield" value="" />
</label></p>

ただし、最初に で php コードを確認してくださいvar_dump()

于 2012-07-15T23:23:11.200 に答える
0

こんにちは、 mail() が機能しているかどうかを確認してください。

if(mail($to, $subject, $message, $headers)){
  // Working
}

そうでない場合は、メール機能の標準フォーマットを親切に行ってください

$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$phone = $_REQUEST['phone'];
$detail = $_REQUEST['detail'];


$subject = "Subject";
$headers = "From: \"".$youremail." ".$youremail."\" <".$youremail.">\n"; 
$headers .= "To: \"".$email."\" <".$email.">\n"; 
$headers .= "Return-Path: <".$email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/HTML; charset=ISO-8859-1\n";    

$message = "Your Message here!";

if(mail($to, $subject, $message, $headers)){
   // success
}
于 2013-06-06T02:35:59.283 に答える