Saugat Thapa Saugat Thapa - 4 months ago 8
PHP Question

form validation is not working

public function add_creation()
{
$images = $this->do_imgupload();
$this->form_validation->set_rules('title','title','trim|xss_clean');
$this->form_validation->set_rules('instrument_used','instrument_used','trim|xss_clean');
$this->form_validation->set_rules('genre','genre','trim|xss_clean');
$this->form_validation->set_rules('courtesy','courtesy','trim|xss_clean');
$this->form_validation->set_rules('image_link','image_link','trim|xss_clean');
$this->form_validation->set_rules('song_link','song_link','trim|xss_clean');
$this->form_validation->set_rules('comment_request','comment_request','trim|xss_clean');

if($this->input->post('upload')){
if($this->form_validation->run()==FALSE){

redirect('creations');
}
else
{
//based on input field the data will be inserted
if ($this->input->post('image_link')) {
$time=date('Y-m-d');
$data1=array(
'title'=>$this->input->post('title'),
'instrument_used' =>$this->input->post('instrument_used'),
'genre' =>$this->input->post('genre'),
'art_form_id' =>$this->input->post('art_form_id'),
'courtesy' =>$this->input->post('courtesy'),
'image_link'=>$images['file_name'],
'artist_id'=>1,
'published_date'=>$time,
'comment_request' => $this->input->post('comment_request')

);
$query=$this->hbmodel->md_add_creation($data1);


}




if ($query)
{


redirect('profile');
}
else
{

redirect('creations');
}
}
}
}


<form role="form" id="#publish_creation" action="<?php echo base_url();?>creations/add_creation" method="post" enctype="multipart/form-data">
<input type="submit" value="Publish" name="upload" class="btn th-btn-pri1blue">
<input class="btn btn-default btn-sm" type="file" name="image_link" id="image_upload">


<input placeholder="Title: Numb Cover" name="title" id="title" type="text" required >
<select class="form-control" id="my_select" name="art_form_id">
<option value="1">Music</option>
<option value="2">Photography</option>
<option value="3">Painting</option>
<option value="4">Fashion</option>
<option value="5">Modelling</option>
</select>


<input placeholder="Genre: Alternative Rock" name="genre" id="genre" type="text" >

<input placeholder="Instrument Used: Yamaha Piano" name="instrument_used" id="instrument_used" type="text" >

<input placeholder="Courtesy: Linkin Park" name="courtesy" id="courtesy" type="text" >

<input placeholder="Comment Request: Be critical or interpret!" name="comment_request" id="comment" type="text" >
</form>


I am getting redirected to the same upload page when i submit the form and not getting any error. but i am trying to provide the values to the controller that will later take to model page. YOu can create the database from the controller and insert it in model. I am sure there is nothing wrong in model.

Answer

I found out that you have to change global_xss_filtering to true in the config.php in config folder. Then put

$this->load->helper('security');

to the controller. Then the validation will work. This problem occured in CI 3.0.0