【问题标题】:How to pass variables from email?如何从电子邮件中传递变量?
【发布时间】:2012-11-14 09:34:22
【问题描述】:

我开发了一个包含 CI 表单验证、电子邮件助手和课程的联系表单。当用户发送信息时,客户端将收到一封包含此信息的 HTML 电子邮件。我已经用 HTML 表格结构创建了一个单独的视图,它是通过控制器中的字符串构建的 [下面的代码]。有没有办法将用户发送的内容传递到这个 HTML 表单中?例如,在我的电子邮件中,我有:

-You have received an email from $name<br>
-Message $message<br>
-You can reply to them at $email

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

查看:

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

【问题讨论】:

  • 我认为这是可行的,这是正确的方法:在我想要 html 表单中的值的任何地方添加“”?
  • 你将在 $data 中拥有什么......
  • 您好,它是返回视图的触发器,其中包含传入的动态数据
  • 你可以做一件事构建两个视图文件一个是contact.php,它将具有表单和所有内容,当用户提交表单时,它将转到控制器中的一个函数,该函数将调用另一个视图文件您将使用 $_POST 获取任何您想要的数据。准备好您希望在该视图中如何发送 html 电子邮件并使用您的发送邮件功能发送该视图文件.....
  • 谢谢,我已经准备好你所说的一切,并认为我会尝试回显 $_POST['name'] 并工作。这种方法有什么缺点还是这是最好/唯一的方法?感谢您的评论。

标签: php codeigniter email html-email


【解决方案1】:

以 CodeIgniter 的方式做事,你应该使用 $this-&gt;input-&gt;post('name') 而不是 $_POST['name']

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

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

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

You have a message from &lt;?=$name?&gt;

在控制器中,我还将set_value('name') 更改为$this-&gt;input-&gt;post('name')

【讨论】:

  • 我只是 CI 的新手,这对我有很大帮助,我从 POST 更改为您上面所说的并且效果很好 - 谢谢!
  • 很高兴为您提供帮助。这就是 StackOverflow 的用途:)
【解决方案2】:

从上面的示例中,添加如下内容很简单: echo $_POST['name'] 进入html表单。希望这可以帮助其他人并感谢您的支持。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 2019-07-25
      • 2017-11-30
      • 2018-12-07
      • 2016-10-20
      • 2015-12-11
      • 2015-09-02
      相关资源
      最近更新 更多