2013-06-06 2 views
0

Используя эти MVC, я получаю Error 500. Любые идеи?Ошибка 500 после отправки формы в codeigniter

Контроллер

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

class Download extends CI_Controller { 
    function __construct() 
    { 
     parent::__construct(); 
     parent::__construct(); 
     $this->load->library('form_validation'); 
     $this->load->database(); 
     $this->load->helper('form');   
     $this->load->helper('url'); 
     $this->load->model('upload_model'); 

     //$this->output->enable_profiler(TRUE); 
    } 

    function index()  
    {  
     $this->form_validation->set_rules('enter_product_name', 
              'Enter Product Name', 
              'required|max_length[200]');   
     $this->form_validation->set_rules('test_type', 
              'Test Type', 
              'required|max_length[200]');   
     $this->form_validation->set_rules('test_unit', 
              'Test Unit', 
              'required|max_length[200]');   
     $this->form_validation->set_rules('project_code', 
              'Project Code', 
              'required|max_length[200]'); 

     $this->form_validation->set_error_delimiters('<br /><span class="error">', 
                '</span>'); 

     if ($this->form_validation->run() == FALSE) // validation hasn't been passed 
     { 
      $data->page = 'download_form_view'; 
      $this->load->view('container', $data); 

      // $this->load->view('upload_form_view');  
     }  
     else // passed validation proceed to post success logic   
     { 
      // build array for the model 
      $file_name_info = $this->input->post('enter_product_name') 
          .'_'. $this->input->post('test_type') 
          .'_'. $this->input->post('test_unit') 
          .'_'. $this->input->post('project_code'); 

      $filename_data = array( 
       'download_name' => $file_name_info 
      ); 
      // run insert model to write data to db 

      if ($this->download_model->DownloadName($filename_data) == TRUE) 
      { 
       //redirect('download/download'); 
       $this->download(); 
      } 
      else 
      { 
       echo 'An error occurred while saving your filename to database. Please contact Admin with Issue No.[1]'; 
       // Or whatever error handling is necessary 
      } 

     } 

    } 


    function download()  
    {  

     $this->load->helper('download'); 
     $this->db->select('download_name'); 
     $this->db->where("id", "0"); 
     $this->db->limit(1); 
     $query = $this->db->get('downloadname'); 

     $download_save_name = $query->row()->download_name; 


     $data = file_get_contents("./uploads/$download_save_name.xlsx"); 
     force_download("$download_save_name.xlsx", $data); 


    } 
} 

?> 

Посмотреть

<?php // Change the css classes to suit your needs  

$attributes = array('class' => '', 'id' => ''); echo 
form_open('download', $attributes); ?> 

<p> 
     <label for="enter_product_name">Enter Product Name <span class="required">*</span></label> 
     <?php echo form_error('enter_product_name'); ?> 
     <br /><input id="enter_product_name" type="text" name="enter_product_name" value="<?php echo 
set_value('enter_product_name'); ?>" /> </p> 

<p> 
     <label for="test_type">Test Type <span class="required">*</span></label> 
     <?php echo form_error('test_type'); ?> 

     <?php // Change the values in this array to populate your dropdown as required ?> 
     <?php $options = array(
        '' => 'Please Select', 
        'LongTerm' => 'Long Term Study', 
        'ShortTerm' => 'Short Term Study', 
        'Experimental' => 'Experimental Study', 
       ); ?> 

     <br /><?php echo form_dropdown('test_type', $options, set_value('test_type'))?> </p>           

          <p> 
     <label for="test_unit">Test Unit <span class="required">*</span></label> 
     <?php echo form_error('test_unit'); ?> 

     <?php // Change the values in this array to populate your dropdown as required ?> 


     <?php $options = array(
        '' => 'Please Select', 
        'Hyd' => 'Hyd Unit', 
        'Viz1' => 'Viz Unit-1', 
        'Viz2' => 'Viz Unit-2', 
       ); ?> 


     <br /><?php echo form_dropdown('test_unit', $options, set_value('test_unit'))?> </p>           

          <p> 
     <label for="project_code">Project Code <span class="required">*</span></label> 
     <?php echo form_error('project_code'); ?> 
     <br /><input id="project_code" type="text" name="project_code" value="<?php echo set_value('project_code'); ?>" /> </p> 


<p> 
     <?php echo form_submit('submit', 'Submit'); ?> </p> 

<?php echo form_close(); ?> 

Модель

<?php 

class Download_model extends CI_Model { 

    function __construct() {  parent::__construct(); } 
      function DownloadName($filename_data) 

    { 

     $this->db->update('downloadname', $filename_data, "id = 0"); 
       if ($this->db->affected_rows() == '1')  {   return TRUE;  } 
       return FALSE; } } ?> 
+0

Пожалуйста, не удаляйте код от вопроса. Это сделало бы любые ответы бессмысленными, так что это никогда не будет помогать никому другому в будущем. – Sparky

ответ

0

Я думаю, что проблема:

вы загрузили

$this->load->model('upload_model'); 

и в вашей модели кода вы дали

class Download_model extends CI_Model { 

изменить это на

class Upload_model extends CI_Model { 
Смежные вопросы