php - codeigniter 表单从引导表单接收空白电子邮件
问题描述
我创建了一个带有两个联系表格的网站,一个是预订表格,另一个是普通的“联系我们”表格。两个表单数据都将出现在 HTML 表中。问题是我收到了邮件主题为我声明的空白电子邮件(来自网站的预订,来自网站的查询)。但是当我尝试发送表单数据而不填写它时,它不允许我发送,html“必需”属性告诉“请填写此字段”。但我收到空白电子邮件,如附件所示,我的查看页面是
<form id="contact_form" method="post" enctype="multipart">
<div class="form-group">
<input type="text" class="form-control" name="name" value="" placeholder="Name" required>
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" value="" placeholder="E-mail" required>
</div>
<div class="form-group">
<input type="tel" class="form-control" name="phone" value="" placeholder="Phone" required>
</div>
<div class="form-group">
<textarea class="form-control" name="message" rows="3" placeholder="Message"></textarea>
</div>
<button class="btn btn-default" type="submit" name="submit">
<i class="fa fa-paper-plane-o" aria-hidden="true"></i>Submit
</button>
</form>
而jQuery是
<script>
$("#contact_form").on('submit', function(e)
{
var temp=0;
e.preventDefault();
var data = new FormData($(this))
$.ajax({
url: "<?php echo base_url();?>index.php/home/contact_details",
type: "POST",
dataType:'json',
data: new FormData(this),
contentType: false,
cache: true,
processData:false,
success: function(data)
{
alert("Successfully submitted");
}
});
});
</script>
我的控制器功能是
public function contact_details()
{
$data['name']=$name=$this->input->post('name');
$data['email']=$email=$this->input->post('email');
$data['phone']=$phone=$this->input->post('phone');
$data['message']=$message=$this->input->post('message');
$config = Array(
'protocol' => 'sendmail',
'smtp_host' => 'localhost',
'smtp_port' => 25,
'smtp_user' => 'SMTP Username',
'smtp_pass' => 'SMTP Password',
'smtp_timeout' => '4',
'mailtype' => 'html',
'charset' => 'iso-8859-1'
);
$message='<table border="1" width="100%">
<tr>
<td>Name</td>
<td>'.$name.'</td>
</tr>
<tr>
<td>Phone</td>
<td>'.$phone.'</td>
</tr>
<tr>
<td>Email</td>
<td>'.$email.'</td>
</tr>
<tr>
<td>Message</td>
<td>'.$message.'</td>
</tr>
</table>';
$this->email->set_mailtype("html");
$this->load->library('email', $config);
$this->email->from($email);
$this->email->to('example@example.ae');
$this->email->cc('example@example.com');
$this->email->cc('example@example.ae');
$this->email->subject('Enquiry from website');
$this->email->message($message);
$sent=$this->email->send();
$var=1;
echo $var;
}
解决方案
这$data['name']=$name=$this->input->post('name');
是奇怪的语法。
尝试$name = $this->input->post('name');
同样适用于以下内容(电子邮件、电话、消息)。
推荐阅读
- postgresql - CentOS 7 pgbouncer.pid 权限问题
- resilience4j - 将 Prometheus 指标与 CircuitBreakerConfigCustomizer 一起使用
- jmeter - 如何管理客户端证书的大型密钥库以使用 JMeter 加载测试 Mutual TLS
- python - 用python中的字符串替换列表中的多个字符串并获取替换字符串出现的计数
- javascript - Android反应原生接近传感器
- python - sqlalchemy 连接烧瓶
- javascript - 获取请求后重定向需要两次点击?
- objective-c - TVOS 上的 contentOverlayView 未显示
- assembly - 如何在 x86 程序集中将 16 位寄存器移动到 8 位寄存器?
- regex - Delphi中用于StringList中所有匹配行的正则表达式