为什么我的 php 联系表发送空白电子邮件?
Why is my php contact form sending blank emails?
我是 PHP 新手,想知道是否有人可以帮助我解决这个问题?一旦用户(在本例中为我)提交信息,它就会向我的收件箱发送空白电子邮件。此外,没有主题显示。我相信我的问题是不同的,因为它是具有附加无线电功能的特定代码,这有助于我更好地理解它并从我的错误中吸取教训。提前致谢。
我的PHP代码:
<?php
if(!isset($_POST['submit'])) {
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$message = $_POST['message'];
$email_from = 'testtike@yahoo.com'; //<== update the email address
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n"
. "Here is the message:\n $message".
$to = "testtike@yahoo.com"; //<== update the email address
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
//Send the email!
mail($to, $subject, $body, $from, $tel);
//done. redirect to thank-you page.
header('Location: thank-you.html');
// Function to validate against any email injection attempts
function IsInjected($str) {
$injections = array('
(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str)) {
return true;
} else {
return false;
}
}
我的HTML:
<label>Name</label>
<input name="name" placeholder="Type Here">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
<label>Phone Number</label>
<input name="tel" type="phone" placeholder="Type Here">
<label>Message/Comments/Questions</label>
<textarea name="message" placeholder="Type Here"></textarea>
<label>Are you retired?</label> <br>
<div id="button">
<input type="radio" name="retired" value="yes"> Yes.
<input type="radio" name="retired" value="no"> No.
<input type="radio" name="retired" value="na"> Does not apply.<br><br>
</div>
<label>Are you a veteran?</label> <br>
<div id="button">
<input type="radio" name="vet" value="yes"> Yes.
<input type="radio" name="vet" value="no"> No.
<input type="radio" name="vet" value="na"> Does not apply.<br><br>
</div>
<label>Military Family Member?</label> <br>
<div id="button">
<input type="radio" name="family" value="yes"> Yes.
<input type="radio" name="family" value="no"> No.
<input type="radio" name="family" value="na"> Does not apply.<br>
</div>
<label> Do You Have A Copy of Your DD214?</label> <br>
<div id="button">
<input type="radio" name="dd" value="yes"> Yes.
<input type="radio" name="dd" value="no"> No.
<input type="radio" name="dd" value="na"> Does not apply.<br>
</div>
<input type="submit" name='submit' value="submit">
</form>
我是 PHP 新手,想知道是否有人可以帮助我解决这个问题?一旦用户(在本例中为我)提交信息,它就会向我的收件箱发送空白电子邮件。此外,没有主题显示。我相信我的问题是不同的,因为它是具有附加无线电功能的特定代码,这有助于我更好地理解它并从我的错误中吸取教训。提前致谢。
我的PHP代码:
<?php
if(!isset($_POST['submit'])) {
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$message = $_POST['message'];
$email_from = 'testtike@yahoo.com'; //<== update the email address
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n"
. "Here is the message:\n $message".
$to = "testtike@yahoo.com"; //<== update the email address
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
//Send the email!
mail($to, $subject, $body, $from, $tel);
//done. redirect to thank-you page.
header('Location: thank-you.html');
// Function to validate against any email injection attempts
function IsInjected($str) {
$injections = array('
(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str)) {
return true;
} else {
return false;
}
}
我的HTML:
<label>Name</label>
<input name="name" placeholder="Type Here">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
<label>Phone Number</label>
<input name="tel" type="phone" placeholder="Type Here">
<label>Message/Comments/Questions</label>
<textarea name="message" placeholder="Type Here"></textarea>
<label>Are you retired?</label> <br>
<div id="button">
<input type="radio" name="retired" value="yes"> Yes.
<input type="radio" name="retired" value="no"> No.
<input type="radio" name="retired" value="na"> Does not apply.<br><br>
</div>
<label>Are you a veteran?</label> <br>
<div id="button">
<input type="radio" name="vet" value="yes"> Yes.
<input type="radio" name="vet" value="no"> No.
<input type="radio" name="vet" value="na"> Does not apply.<br><br>
</div>
<label>Military Family Member?</label> <br>
<div id="button">
<input type="radio" name="family" value="yes"> Yes.
<input type="radio" name="family" value="no"> No.
<input type="radio" name="family" value="na"> Does not apply.<br>
</div>
<label> Do You Have A Copy of Your DD214?</label> <br>
<div id="button">
<input type="radio" name="dd" value="yes"> Yes.
<input type="radio" name="dd" value="no"> No.
<input type="radio" name="dd" value="na"> Does not apply.<br>
</div>
<input type="submit" name='submit' value="submit">
</form>