[eluser]RMinor[/eluser]
Hi, I have an issue with uploading two images, re-sizing them, and saving them to the database. When I submit the form I get an error stating that 'photo_one, 'thumb_one', 'photo_two', and 'thumb_two' are undefined indexes. It's like they aren't even being passed. Can anybody see what's going on with my code below?
Controller:
Code:
public function index()
{
$this->load->model('Model_model');
$data['page'] = $this->Global_model->pageInformation($this->_page);
$data['testimonials'] = $this->Model_model->getTestimonials();
$data['success'] = FALSE;
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
if ($this->input->post('submit')) {
$this->form_validation->set_rules('name', 'Name', 'trim|required');
$this->form_validation->set_rules('stage_name', 'Stage Name', 'trim');
$this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email');
$this->form_validation->set_rules('birth_month', 'Birth Month', 'trim|required|integer|exact_length[2]');
$this->form_validation->set_rules('birth_day', 'Birth Day', 'trim|required|integer|exact_length[2]');
$this->form_validation->set_rules('birth_year', 'Birth Year', 'trim|required|integer|exact_length[4]');
$this->form_validation->set_rules('photo_one', 'Photo', 'trim');
$this->form_validation->set_rules('photo_two', '', 'trim');
$this->form_validation->set_rules('age_check', 'Age Check', 'trim|required');
$this->form_validation->set_rules('ip', 'IP Adress', 'trim|required|valid_ip');
if($this->form_validation->run() == FALSE) {} else {
if ($this->upload()) {
$email = $this->input->post('email');
$body = "<p></p>"
$this->load->library('email');
$this->email->from('', '');
$this->email->to($email);
$this->email->cc('');
$this->email->subject('');
$this->email->message($body);
if ($this->email->send()) {
$data['success'] = TRUE;
}
}
}
}
$this->load->view('model_view', $data);
}
public function upload()
{
// Load necessary model and libraries.
$this->load->model('Model_model');
$this->load->library('upload');
$this->load->library('image_lib');
$db_info = array();
// Set configuration array for uploaded photo.
$config['upload_path'] = 'models/';
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['max_size'] = '2048';
$config['max_width'] = '0';
$config['max_height'] = '0';
// Set configuration array for thumbnail.
$config_thumb['image_library'] = 'GD2';
$config_thumb['create_thumb'] = TRUE;
$config_thumb['maintain_ratio'] = TRUE;
$config_thumb['width'] = 150;
$config_thumb['height'] = 150;
// Upload first photo and create a thumbnail of it.
if (!empty($_FILES['photo_one']['name'])) {
if ($this->upload->do_upload('photo_one')) {
$this->upload->initialize($config);
$photo_info = $this->upload->data();
$config_thumb['source_image'] = $photo_info['full_path'];
$db_info['photo_one'] = $photo_info['file_name'];
$this->image_lib->initialize($config_thumb);
$this->image_lib->resize();
$db_info['thumb_one'] = $photo_info['raw_name'] . '_thumb' . $photo_info['file_ext'];
$this->image_lib->clear();
} else {
$data['upload_error'][] = $this->upload->display_errors();
}
}
// Upload second photo and create a thumbnail of it.
if (!empty($_FILES['photo_two']['name'])) {
$this->upload->initialize($config);
if ($this->upload->do_upload('photo_two')) {
$photo_info = $this->upload->data();
$config_thumb['source_image'] = $photo_info['full_path'];
$db_info['photo_two'] = $photo_info['file_name'];
$this->image_lib->initialize($config_thumb);
$this->image_lib->resize();
$db_info['thumb_two'] = $photo_info['raw_name'] . '_thumb' . $photo_info['file_ext'];
$this->image_lib->clear();
} else {
$data['upload_error'][] = $this->upload->display_errors();
}
}
$this->Model_model->submit($db_info);
}
Model:
Code:
public function submit($data)
{
$result = $this->db->query("INSERT INTO model
(model_name,
model_stage_name,
model_email,
model_birth_month,
model_birth_day,
model_birth_year,
model_photo_one,
model_thumb_one,
model_photo_two,
model_thumb_two,
model_age_check,
model_ip)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(
$this->input->post('name'),
$this->input->post('stage_name'),
$this->input->post('email'),
$this->input->post('birth_month'),
$this->input->post('birth_day'),
$this->input->post('birth_year'),
$data['photo_one'],
$data['thumb_one'],
$data['photo_two'],
$data['thumb_two'],
$this->input->post('age_check'),
$this->input->post('ip')));
if ($result) {
return TRUE;
}
return FALSE;
}