Php 如何从电子邮件传递变量?
我已经开发了一个包含CI表单验证、电子邮件助手和类的联系表单。当用户发送信息时,客户端将收到一封包含此信息的HTML电子邮件。我已经用HTML表结构创建了一个单独的视图,它是通过控制器中的字符串构建的[下面的代码]。有没有办法将用户发送的内容传递到此HTML表单中?例如,在我的电子邮件中,我有:Php 如何从电子邮件传递变量?,php,codeigniter,email,html-email,Php,Codeigniter,Email,Html Email,我已经开发了一个包含CI表单验证、电子邮件助手和类的联系表单。当用户发送信息时,客户端将收到一封包含此信息的HTML电子邮件。我已经用HTML表结构创建了一个单独的视图,它是通过控制器中的字符串构建的[下面的代码]。有没有办法将用户发送的内容传递到此HTML表单中?例如,在我的电子邮件中,我有: -You have received an email from $name<br> -Message $message<br> -You can reply to them a
-You have received an email from $name<br>
-Message $message<br>
-You can reply to them at $email
从上面的示例中,添加:echo$\u POST['name']非常简单
转换为html表单。希望这可以帮助其他人,并感谢他们的支持。以CodeIgniter的方式做事,你应该使用
$this->input->post('name')
而不是$\u post['name']
要将数据添加到视图中,只需添加
$data['name']=$this->input->post('name')代码>
在加载视图之前。这将允许您像在初始语句中一样在视图中打印$name
变量。即,在该观点中:
您收到了来自
在控制器中,我还将更改set_value('name')
的$this->input->post('name')
您只需要在html表单文件中使用$\u post['name'}。我认为这是可行的,这是正确的方法吗:加载项“”无论我想要html表单中的值在哪里?你将在$data中得到什么…嗨,这里是返回视图的触发器,动态数据被传递到其中。你可以做一件事构建两个视图文件,一个是contact.php,它将具有表单和所有内容,当用户提交表单时,它将转到控制器中的一个函数,其中我将调用另一个视图文件,因为您将使用$\u POST获取您想要的任何数据。准备您希望在该视图中使用html电子邮件的方式,并使用u r send mail功能发送该视图文件…..谢谢,我已准备好您所说的所有设置,并认为我将提供回显$\u POST['name']试试看,效果不错。这种方法有什么缺点吗?或者这是最好的/唯一的方法吗?谢谢你的评论。我只是CI的新手,这帮了我很大的忙,我从帖子改成了你上面说的,效果很好-谢谢!很高兴能帮上忙。这就是StackOverflow的作用:)
<h1>Contact</h1>
<div id="contact">
<?php
echo $message;
echo validation_errors();
echo form_open('contact/send_email');
//Name field
echo form_label('Name: ', 'name');
$data = array (
'name' => 'name',
'id' => 'name',
'value' => set_value('name')
);
echo form_input($data);
echo form_submit('submit', 'Send');
echo form_close();
}else{
$data['message'] = 'The email has successfully been sent';
$html_email = $this->load->view('html_email', $data, true);
//load the email class
$this->load->library('email');
$this->email->from(set_value('email'), set_value('name'));
$this->email->to('email@hotmail.com');
$this->email->subject('Message from Website');
$this->email->message($html_email);
$this->email->send();
//if error from library will send us metadata
echo $this->email->print_debugger();
$data['page_title'] = 'Contact';
$data['content'] = 'contact';
$this->load->view('template', $data);
}