0
私は、html5ベースの連絡フォームをphpメールスクリプトで作成しています。私のウェブサイトで空のメールを受信しています
なぜ私は投稿時に空のメールを受け取っているのかわかりません。「私に連絡していただきありがとうございます」などのメッセージを印刷したい場合、どうすればよいですか。
<?php
$name = (isset($_POST['name']) ? $_POST['name'] : null);
$phone = (isset($_POST['phone']) ? $_POST['phone'] : null);
$address = (isset($_POST['address']) ? $_POST['address'] : null);
$appointment_datepicker =(isset($_POST['appointment-datepicker']) ? $_POST['appointment-datepicker'] : null);
$message = (isset($_POST['textarea']) ? $_POST['textarea'] : null);
$email_address = (isset($_POST['email']) ? $_POST['email'] : null);
// Create the email and send the message
$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to.
$email_subject = "Website Contact Form: $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nPhone: $phone\n\nEmail: $email_address\n\nAppointment: $appointment_datepicker\n\nAddress: $address\n\nMessage:\n$message";
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected]
$headers .= "Reply-To: $email_address";
$mail_status = mail($to,$email_subject,$email_body,$headers);
/** Check for empty fields
if(!empty($_POST['name']) || !empty($_POST['phone']) || !empty($_POST['address']) || !empty($_POST['appointment-datepicker']) || !empty($_POST['textarea']) || filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{**/
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
print("Thank you for the message. We will contact you shortly.");
window.location = 'http://thankyou.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
print('Message failed. Please, send an email to [email protected]');
window.location = 'http://thankyou.html';
</script>
<?php
}
?>
<form id="appointment-form" action="contact_me.php" method="post" class="appointment-form">
<div class="col-md-6">
<div class="form-group form-md-line-input form-md-floating-label">
<input id="name" type="text" class="form-control" required="required">
<label for="name">Name</label>
</div>
<div class="form-group form-md-line-input form-md-floating-label">
<input id="phone" type="text" class="form-control" required="required" pattern="/[1-9][01][0-9]-?[0-9]{3}-=[0-9]{4}">
<label for="phone">Phone Number</label>
</div>
<div class="form-group form-md-line-input form-md-floating-label">
<input id="address" type="text" class="form-control" required="required">
<label for="address">Address </label>
</div>
<div class="form-group form-md-line-input form-md-floating-label">
<input id="appointment-datepicker" type="text" class="form-control form-line-input" required="required">
<label for="appointment-datepicker">Book a date</label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input form-md-floating-label">
<input id="email" type="text" class="form-control" required="required" pattern="[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~.-][email protected][a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*">
<label for="email">Email Address</label>
</div>
<div class="form-group form-md-line-input form-md-floating-label">
<textarea id="textarea" rows="4" class="form-control form-textarea"></textarea>
<label for="textarea">Message</label>
</div>
<div class="btn-wrapper">
<button type="submit" class="btn btn-make-app">Send to us</button>
</div>
</div>
<div class="clearfix"> </div>
</form>
メッセージとヘッダーの形式が正しくありません。ヘッダーインジェクション攻撃の脆弱性があります。あなたがこの質問のタグを付けた[PHPMailer](https://github.com/PHPMailer/PHPMailer)のように、メールを直接使用しないでください。 – Synchro
こんにちはシンクロ、どうすればいいですか? – user3377410
リンクをクリックしますか?ありがとう。 – Synchro