2016-05-12 139 views
1

我是codeigniter的新用戶,並且將所有的詳細信息發送到郵件。 但我沒有得到解決方案,我的表單不工作。 這裏是鑑於我的視圖文件如何使html表單在codeigniter中發送電子郵件

contact_us in view 
<?php 
     $form=array('class'=>'contact-form default-form','id'=>'myform'); 
     echo form_open('success_form/success',$form); 
     ?> 
     <div class="row"> 

      <div class="col-md-12"> 
      <div class="preamble col-md-12"> 
       <h3>Get in touch</h3> 
      </div> 
      </div> 
      <div class="col-md-6"> 
      <?php 
      $name=array('placeholder'=>'Name','name'=>'name'); 
      echo form_input($name); 
      ?> 
      </div> 
      <div class="col-md-6"> 
      <?php 
      $company=array('placeholder'=>'company','name'=>'company'); 
      echo form_input($company); 

      ?> 
      </div> 
      <div class="col-md-6"> 
      <?php 
      $number=array('placeholder'=>'Phone Number','name'=>'number'); 
      echo form_input($number); 
      ?> 
      </div> 
      <div class="col-md-6"> 
      <?php 
      $email=array('placeholder'=>'Email','name'=>'email'); 
      echo form_input($email); 
      ?> 
      </div> 
      <div class="col-md-6"> 
      <span class="arrival calendar"> 
      <?php 
      $arrival=array('name'=>'arrival','placeholder'=>'Arrival','data-dateformat'=>'m/d/y'); 
      echo form_input($arrival); 
      ?> 
       <i class="fa fa-calendar"></i> 
      </span> 
      </div> 
      <div class="col-md-6"> 
      <span class="departure calendar"> 
      <?php 
      $departure=array('name'=>'departure','placeholder'=>'Departure','data-dateformat'=>'m/d/y'); 
      echo form_input($arrival); 
      ?> 
       <i class="fa fa-calendar"></i> 
      </span> 
      </div> 
      <div class="col-md-12"> 

      <span class="select-box" title="hotel-type"> 
       <select name="person" data-placeholder="Number of People"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
       <option value="6">6</option> 
       <option value="7">7</option> 
       <option value="8">8</option> 
       <option value="9">9</option> 
       <option value="10">10</option> 
       <option value="10+">10+</option> 
       </select> 
      </span> 
      </div> 
      <div class="col-md-12"> 
      <textarea placeholder="How we can help you"></textarea> 
      </div> 
      <div class="col-lg-md text-center"> 
      <button class="btn btn-transparent-white">Send Message</button> 
      </div> 
     </div> 
     <?php echo form_close();?> 

這裏是我的控制器文件 success_form在控制器

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

class Success_form extends CI_Controller{ 

    public function __construct() { 
     parent::__construct(); 
     $this->load->library(array('session', 'form_validation', 'email')); 
    } 

    public function index(){ 

     // Set Validation Rule 

     $this->form_validation->set_rules('name','Name','trim|required|xss_clean|callback_alpha_space_only','required'); 
     $this->form_validation->set_rules('company','Company','trim|required|xss_clean|callback_alpha_space_only'); 
     $this->form_validation->set_rules('number','Mobile Number','required|regex_match[/^[0-9]{10}$/]'); 
     $this->form_validation->set_rules('email', 'Emaid ID', 'trim|required|valid_email'); 
     $this->form_validation->set_rules('arrival','Arrival','trim|required|xss_clean'); 
     $this->form_validation->set_rules('departure','Departure','trim|required|xss_clean'); 
     $this->form_validation->set_rules('person','Number of Person','trim|required|xss_clean|numeric'); 


    //Run Validation on Form Input 

    if($this->form_validation->run()==FALSE){ 
    // Validation fails 
     $this->load->view('contact_us_view'); 
    } 
    else{ 
     // get the form data 
     $name=$this->input->post('name'); 
     $company=$this->input->post('company'); 
     $number=$this->input->post('number'); 
     $email=$this->input->post('email'); 
     $arrival=$this->input->post('arrival'); 
     $departure=$this->input->post('departure'); 
     $person=$this->input->post('person'); 

     //Set email id 
     $to_email='[email protected]'; 

     //configure email settings 
      $config['protocol'] = 'smtp'; 
      $config['smtp_host'] = 'ssl://smtp.gmail.com'; 
      $config['smtp_port'] = '465'; 
      $config['smtp_user'] = '[email protected]'; 
      $config['smtp_pass'] = 'password'; 
      $config['mailtype'] = 'html'; 
      $config['charset'] = 'iso-8859-1'; 
      $config['wordwrap'] = TRUE; 
      $config['newline'] = "\r\n"; //use double quotes 
      //$this->load->library('email', $config); 
      $this->email->initialize($config); 

      //send mail 
      $this->email->from($email, $name); 
      $this->email->to('$to_email'); 
      $this->email->subject('testing mail'); 
      $this->email->message('content'); 

      if($this->email->send()){ 
       //mail sent 
       $this->session->set_flashdata('msg','<div class="alert alert-success text-center">Your mail has been sent successfully!</div>'); 
       redirect('success_form/index'); 
      } 
      else 
      { 
       //error 
       $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">There is error in sending mail! Please try again later</div>'); 
       redirect('success_form/index'); 
      } 
    } 
    } 

    //custom validation function to accept only alphabets and space input 
    function alpha_space_only($str) 
    { 
     if (!preg_match("/^[a-zA-Z ]+$/",$str)) 
     { 
      $this->form_validation->set_message('alpha_space_only', 'The %s field must contain only alphabets and space'); 
      return FALSE; 
     } 
     else 
     { 
      return TRUE; 
     } 
    } 

    function success(){ 
     $this->load->view('success_view'); 
    } 

} 

我試過很多,但did'nt得到answer.please幫我找到解決方案。

+0

請嘗試此鏈接:http://www.formget.com/codeigniter-gmail-smtp/ – Suyog

+0

suyog ..我試過但沒有工作..請參閱我的代碼 –

+0

你正在得到什麼錯誤? –

回答

0

在您的視圖中,您正在將表單提交給success_form控制器的成功操作。

echo form_open('success_form/success',$ form);

在您的成功操作中,您將再次加載相同的表單。

函數成功(){ $ this-> load-> view('success_view'); }

您已經在索引操作中編寫了您的發送郵件邏輯,您需要在成功操作中調用以發送電子郵件。

function success(){ 
     $this->index(); 
     $this->load->view('success_view'); 
    } 

這可能適合你。