使用Codeigniter从表单发送电子邮件

亚当·罗斯·鲍尔斯(Adam Ross Bowers)

项目概况

我正在使用codeigniter php框架来构建包括联系表的标准网站,该网页的用户应该能够输入基本的联系表信息。

  1. 全名
  2. 电子邮件地址
  3. 电话
  4. 关于一般
  5. 查询文本区域
  6. 您是机器人吗-问题答案/验证码风格的问题。

我已经设置并创建了联系表单的视图文件,并创建了一个相应的控制器-这包括使用codeigniter验证库进行验证,然后使用私有功能将有关查询的电子邮件发送给网站管理员等。

问题

我在通过表单验证方案时遇到了问题,但是在提交表单时,我知道一个事实,即数据输入应通过验证测试,然后将数据传递给私有函数以发送电子邮件。

我的密码

下面是我的文件,如果有人可以发现问题,并以正确的方向提示我,我将非常感激!

联络人检视

            <form method="POST" action="/contact/contactvalidate" name="contactform" id="contactform">

            <?php echo validation_errors(); ?>
            <label>Full Name:</label><br /> 
            <?php echo form_error('fullname'); ?>               
            <input type="text" name="fullname" id="fullname" maxlength="100" size="50" />
            <br />
            <label>Email:</label><br />
            <?php echo form_error('email'); ?>
            <input type="text" name="email" id="email" maxlength="100" size="50" />
            <br />
            <label>Telephone:</label>   <br />
            <?php echo form_error('telephone'); ?>
            <input type="text" name="telephone" id="telephone" maxlength="100" size="50" />
            <br />  
            <label>What is your enquiry regarding</label>   <br />
            <?php echo form_error('regarding'); ?>
            <select name="regarding" id="regarding">
                <option value="General Enquiry">General Enquiry</option>
                <option value="HR Consultancy Service">HR Consultancy Service</option>
                <option value="Business Startup Service">Business Startup Service</option>
                <option value="Solutions for Individuals">Solutions for Individuals</option>
                <option value="Other">Other</option>
            </select>
            <br />
            <label>Your Enquiry</label> <br />
            <?php echo form_error('enquiry'); ?>
            <textarea name="enquiry" id="enquiry"></textarea>       
            <br />
            <label>What is 4 + 1?</label>   <br />
            <?php echo form_error('robot'); ?>
            <input type="text" name="robot" id="robot" />               
            <br />
            <input type="submit" value="Submit Post" class="button" />



            </form>

接触控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Contact extends CI_Controller {

        public function index()
        {



                    $this->load->view('general/view_header');
                    $this->load->view('page/view_contact');
                    $this->load->view('general/view_footer');



        }



        public function contactvalidate()
            {
            $this->load->library('form_validation');

            if ($this->input->post('form') == 'contactform'){
                    //Set the validation rules based on the page
                    $this->form_validation->set_rules('fullname', 'Name', 'required|max_length[50]|xss_clean|prep_for_form');
                    $this->form_validation->set_rules('email', 'Email Address', 'trim|required|max_length[255]|xss_clean|valid_email|prep_for_form');
                    $this->form_validation->set_rules('telephone', 'Telephone', 'required|max_length[20]|xss_clean|prep_for_form');
                    $this->form_validation->set_rules('regarding', 'Regarding');
                    $this->form_validation->set_rules('enquiry', 'Enquiry', 'required|max_length[800]|xss_clean|prep_for_form');
                    $this->form_validation->set_rules('robot', 'Sum', 'required');
                }


                            if ($this->form_validation->run() === true)
                                        {
                                            //Send the email
                                            if($this->sendemail($_POST))
                                            {
                                                //If successful load the appropriate view
                                                redirect('/thank-you');
                                            }

                                        }
                    else{
                        //If page exists load all necessary views
                        $this->load->view('general/view_header');
                        $this->load->view('page/view_contact');
                        $this->load->view('general/view_footer');
                    }


                }



        private function sendemail($content)

        {








                    //Load the email library

                    $this->load->library('email');

                    //Initialise the email helper and set the "from"
                    $this->email->initialize(array("mailtype" => "html"));
                    $this->email->from("[email protected]", "Lesley Nowell HR Consultancy");

                    //Set the recipient, subject and message based on the page




                            //$this->email->to('[email protected]');
                            $this->email->to('[email protected]');
                            $this->email->subject('Website Enquirie');
                            $this->email->message("My name is: {$content["fullname"]}<br /><br />My email address is: {$content["email"]}<br /><br />My telephone number is: {$content["telephone"]}<br /><br />The enquiry is regarding: {$content["regarding"]}<br /><br />Enquiry: {$content["enquiry"]}");



                    //If the email is sent
                    if($this->email->send())
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }



        }






    }

结论

希望有足够的信息来了解我在做什么,我相信我一直在做的事情是正确的,我不确定到底该说些什么。

亚当·罗斯·鲍尔斯(Adam Ross Bowers)

固定的

可悲的是,我最终决定解决自己的问题时,我本该推迟发布该帖子。

问题出在接触控制器内

前:

if ($this->input->post('form') == 'contactform')

后:

 if ($this->input->post()){}

经过更多研究后发现,如果您将post()函数留空,它会在我只是简单地创建自己的问题之前从联系表单中选择所有已发布项目。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PHP和AJAX发送电子邮件表单

来自分类Dev

使用Django从表单POST数据发送电子邮件

来自分类Dev

尝试使用PHP从html表单发送电子邮件

来自分类Dev

使用php从html表单发送电子邮件

来自分类Dev

使用 HTML 表单发送电子邮件

来自分类Dev

如何使用php CodeIgniter从本地发送电子邮件

来自分类Dev

使用 CodeIgniter 3.1.10 发送电子邮件

来自分类Dev

无法使用CodeIgniter的电子邮件库发送电子邮件

来自分类Dev

使用sendmail发送电子邮件

来自分类Dev

使用php发送电子邮件

来自分类Dev

使用mail()发送电子邮件

来自分类Dev

使用nodemailer发送电子邮件

来自分类Dev

使用VBScript发送电子邮件

来自分类Dev

使用nodemailer发送电子邮件

来自分类Dev

使用Gradle发送电子邮件

来自分类Dev

使用Javax发送电子邮件?

来自分类Dev

使用SSL发送电子邮件

来自分类Dev

使用Phonegap发送电子邮件

来自分类Dev

使用SwiftUI发送电子邮件

来自分类Dev

使用sendmail发送电子邮件

来自分类Dev

使用Telnet发送电子邮件

来自分类Dev

使用SSL发送电子邮件

来自分类Dev

使用Gradle发送电子邮件

来自分类Dev

使用 netcat 发送电子邮件

来自分类Dev

使用 Lua 发送电子邮件

来自分类Dev

使用 TcpClient 发送电子邮件

来自分类Dev

说发送了电子邮件,但使用Codeigniter发送电子邮件时未收到任何信息

来自分类Dev

动作邮件程序-使用Ruby on Rails通过联系表单发送电子邮件

来自分类Dev

更新Google表单提交后发送电子邮件