如何从电子邮件中传递变量?

时间:2012-11-14 09:34:22

标签: 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 at $email

如果有人可以指导我,那就太好了。我已经将重要的代码片段作为指南。

查看:

<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();

控制器:

此代码的顶部是表单验证和if else语句,这是在通过验证检查时会发生的情况:

}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);
}

3 个答案:

答案 0 :(得分:0)

从上面的例子中可以很简单地添加:echo $ _POST ['name'] 进入html表单。希望这可以帮助其他人并感谢他们的支持。

答案 1 :(得分:0)

以CodeIgniter的方式做事,你应该使用$this->input->post('name')代替$_POST['name']

要将数据添加到视图中,只需添加

即可

$data['name'] = $this->input->post('name');

加载视图之前。这将允许您在视图中打印$name变量,就像在初始语句中一样。即在视图中:

You have a message from <?=$name?>

在控制器中,我还会更改set_value('name')的{​​{1}}。

答案 2 :(得分:0)

您只需在html表单文件中使用$ _POST ['name'}。