1
私は3つのフィールドとテキストエリアを持つ連絡フォームを持っています...
私はそれを検証してから電子メールを送信するためにjQueryを使用します。連絡先フォームのFromフィールドとmail()関数の問題
この連絡先フォームはうまくいきますが、メールを受け取ったときに、[差出人]フィールドが正しくありません。そのFromフィールドに連絡先フォームのNameフィールドに入力されたテキストが表示されるようにしたいと思います。 <[email protected]>
たとえば、ユーザーが名前欄に「Matthew」と入力すると、「Matthew」という単語が「From」フィールドに表示されるようにしたいと考えています。ヘッダ:
<div id="contact">
<h3 id="formHeader">Send Us a Message!</h3>
<form id="contactForm" method="post" action="">
<div id="risposta"></div> <!-- End Risposta Div -->
<span>Name:</span>
<input type="text" id="formName" value="" /><br />
<span>E-mail:</span>
<input type="text" id="formEmail" value="" /><br />
<span>Subject:</span>
<input type="text" id="formSubject" value="" /><br />
<span>Message:</span>
<textarea id="formMessage" rows="9" cols="20"></textarea><br />
<input type="submit" id="formSend" value="Send" />
</form>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#formSend").click(function(){
var valid = '';
var nome = $("#formName").val();
var mail = $("#formEmail").val();
var oggetto = $("#formSubject").val();
var messaggio = $("#formMessage").val();
if (nome.length<1) {
valid += '<span>Name field empty.</span><br />';
}
if (!mail.match(/^([a-z0-9._-][email protected][a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
valid += '<span>Email not valid or empty field.</span><br />';
}
if (oggetto.length<1) {
valid += '<span>Subject field empty.</span><br />';
}
if (valid!='') {
$("#risposta").fadeIn("slow");
$("#risposta").html("<span><b>Error:</b></span><br />"+valid);
$("#risposta").css("background-color","#ffc0c0");
}
else {
var datastr ='nome=' + nome + '&mail=' + mail + '&oggetto=' + oggetto + '&messaggio=' + encodeURIComponent(messaggio);
$("#risposta").css("display", "block");
$("#risposta").css("background-color","#FFFFA0");
$("#risposta").html("<span>Sending message...</span>");
$("#risposta").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
}
return false;
});
});
function send(datastr){
$.ajax({
type: "POST",
url: "contactForm.php",
data: datastr,
cache: false,
success: function(html) {
$("#risposta").fadeIn("slow");
$("#risposta").html('<span>Message successfully sent.</span>');
$("#risposta").css("background-color","#e1ffc0");
setTimeout('$("#risposta").fadeOut("slow")',2000);
}
});
}
</script>
<?php
$mail = $_POST['mail'];
$nome = $_POST['nome'];
$oggetto = $_POST['oggetto'];
$text = $_POST['messaggio'];
$ip = $_SERVER['REMOTE_ADDR'];
$to = "[email protected]";
$message = $text."<br /><br />IP: ".$ip."<br />";
$headers = "From: $nome \n";
$headers .= "Reply-To: $mail \n";
$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Type: text/html; charset=UTF-8 \n";
mail($to, $oggetto, $message, $headers);
?>
はあなたがフィールドからジョン・ドウ<[email protected]>として表示させたい場合は: $ヘッダ= "から:$ Rの\ nを\ノーム<$mail>を"。 –
技術的には間違いありませんが、自分が行ったことを反映するためにあなたの投稿を編集しました。 – Erik
@Kshitij Parajuli - +1、@Matthewちょうど[php documentation](http://php.net/manual/en/function.mail.php)をチェックしてください! – ifaour