php - 发送空字段的php代码邮件字段
问题描述
我正在尝试创建一个PHP mail
.
它完美地将邮件发送到收件箱,但我不知道如何将我的表单字段值发送到inbox
. 我已经尝试过,但它正在发送空字段。
由于我是 PHP 新手,请检查
<?php
get_footer();
?>
<?php
$msg = "mail from" .$name;
// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);
// send email
mail("email@example.com","My subject",$msg);
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$to = "email@example.com";
$subject = $_POST['phone'];
$body = $_POST['body'];
}
?>
<form action="" id="reservationform" method="POST">
<div class="row">
<div class="col-md-4 col-sm-6">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Full Name" title="Your Full Name please" required>
<i class="fa fa-pencil-square-o"></i>
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="form-group">
<label for="phone">Phone</label>
<input type="text" class="form-control" id="phone" name="phone" placeholder="Enter your Phone Number" title="Please enter your phone number" required>
<i class="fa fa-phone"></i>
</div>
</div>
</form>
解决方案
它正在发送空字段,因为您没有在消息(正文)中传递任何 POST 数组的输入,并且您在mail()
页面加载后立即执行该函数。
以下是检查任何空字段时的完成方式:
请注意,我更改了mail()
的参数并添加了一些条件语句。
旁注:似乎缺少输入,因此您需要自己添加这些输入。
if(isset($_POST['submit'])) {
if(!empty($_POST['name'])
&& !empty($_POST['phone'])
&& !empty($_POST['body'])) {
$to = "email@example.com";
$name = $_POST['name'];
$phone = $_POST['phone'];
$body = $_POST['body'];
$msg = "Mail from: $name\n" . "Message: $body\n" . "Phone: $phone \n";
// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);
// send email
if(mail($to, $subject, $msg)){
echo "Mail sent.";
}else{ echo "There was an error."; }
}else{
echo "Some fields were left empty.";
}
}
请参阅手册以mail()
获取更多信息,并添加标题,因为它可能会被拒绝或视为垃圾邮件:
推荐阅读
- python - 从 django 运行 ./runtests.py 时出错
- react-native - 无法在 react-native 中调用父方法
- android - Realm 对 Date 做了一些奇怪的事情
- java - 将对象放入会话后如何清除 ArrayList 对象?
- android - 当文件中有多个错误时,Android Studio 和 Kotlin 代码检查不可用
- sql - MSSQL 事务 - 仅在 SELECT 时插入
- mysql - 无法使用 Node.js 连接到 mysql (express)
- java - 根据当前位置/当前时区获取时间
- sql-server - 如何连接html和sql server
- apache-nifi - 无法在 minifi 上将数据流转换为 yml