Senden Sie eine E-Mail aus Formular mit Codeigniter

PROJEKT-ÜBERSICHT

Ich bin mit dem codeigniter-php-framework zu bauen, eine standard-website mit einem Kontaktformular, der Benutzer der Webseite, die Sie sollten in der Lage sein, um geben Sie die grundlegenden Kontakt-Formular Informationen.

  1. Vollständigen Namen
  2. E-Mail-Adresse
  3. Telefon
  4. Im Hinblick auf die Allgemeinen
  5. Anfrage textarea
  6. Sind Sie ein Roboter - Frage Antwort/captcha Stil Frage.

Habe ich über und erstellt die view-Datei für das Kontaktformular und erstellt eine entsprechende controller - dies schließt die Validierung mit der codeigniter-validation-library und dann eine private Funktion zum senden der E-Mail an den webmaster bezüglich der Anfrage etc.

Das Problem

Habe ich Probleme, immer vorbei an den Formular-Validierung-Szenario, doch beim Absenden des Formulars, ich weiß, für eine Tatsache, dass die Daten-Eingabe passieren soll, die Prüfungen und dann übergeben Sie die Daten an eine private Funktion zum verschicken der E-Mail.

MEIN CODE

Hier sind meine Dateien, die Freiwerden, wenn jemand könnte ein problem erkennen, und schnell mich in die richtige Richtung wäre ich am meisten dankbar!

Kontakt Anzeigen

            <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>

Kontakt Controller

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



        }






    }

ABSCHLUSS

Des Themas, das ist genug Informationen, um zu sehen, was es ist ich Tue, ich glaube, was ich getan habe, um korrekt zu sein, ich bin mir nicht genau sicher, wo der fall-out ist um ehrlich zu sein.

Schreibe einen Kommentar