2010-01-07 6 views
3

맞습니까? 두 번째 옵션에서는 $ _POST 변수를 사용하여 양식 값을 전달합니다. 첫 번째 옵션 인 반면, 각 양식 필드에 대한 변수를 호출하고 할당합니다.Codeigniter :보기에서 컨트롤러로 양식 데이터 전달

$records['email'] = "trim|required|min_length[4]|xss_clean"; 
... 
...  

$this->validation->set_rules($records); 

if ($this->validation->run()) 
{ 
    $this->account_model->saveAccountSettings("sam", $_POST); 
    $this->session->set_flashdata('message', 'Done!');    

    redirect('account/settings'); 
} else { 
... 
} 

답변

3

두 가지 예를 혼합하여 사용하는 경향이 있습니다. 나는 트림과 같은 것들이 실제 게시물 데이터를 수정하지 않는다는 것을 확신 할 수 있습니다. 따라서 유효성 확인 프레임 워크를 통해 데이터를 얻는 경우에만이를 활용할 수 있습니다. 실제로 CI를 사용하여 더 이상 POST에 직접 액세스하지 않습니다.

플러스 나는 두 번째 예제에서 POST를 내 모델에 밀어 넣는 것에 대해 걱정할 것입니다. 누군가 영리한 사람이 보내진 게시물 데이터에 "성"을 추가하고 db 열의 이름이 같은 경우 어떻게됩니까? 비록 당신이 그 데이터를 다루지는 않을지라도 검증되지 않은 데이터가 들어 왔기 때문에 첫 번째 예제의 일부를 사용하고 수동으로 배열에 저장하고자하는 항목을 수동으로 꺼내야합니다.

그래서 하이브리드를 권하고 싶습니다.

$fields['email'] = "trim|required|valid_email|min_length[4]|xss_clean"; 
... 
...  

$this->validation->set_rules($fields); 

if ($this->validation->run()) 
{ 
    $account = new array(); 
    $account['id'] = $accountId; //wherever you get the Id from 
    $account['email'] = $this->validation->email; 

    $this->account_model->save($account); 
    $this->session->set_flashdata('message', 'Done!');    

    redirect('account/settings'); 
} else { 
... 
} 
+0

의 사용 무엇 :

일반적으로 내 코드는 다음과 같이 보인다. $ account [ 'email'] = $ this-> validation-> email; 무엇을하고 있습니까? 첫 번째 필드가 작동하는 곳이 필드를 확인하는 것입니다. – luckytaxi

+0

$ this-> input-> post ('something')와 같이 $ this-> validation->을 사용할 수 있습니다. 그것은 trim 프레임 워크와 XSS를 고려하여 유효성 확인 프레임 워크를 실행 한 후 POST에서 값을 가져옵니다. – Parrots

+0

첫 번째 줄에 "무언가"를 정의해야합니까? 그것이 $ fields [ 'email']라고 쓰여있는 곳을보십시오 ... 전자 메일에 대해서만 "유효성 검사 규칙"을 설정하면 $ this-> validation-> id를 할 수 있습니까? – luckytaxi

0

첫 번째 옵션을 읽거나 패스 값을 추적하는 것이 더 쉽다

내가 본 적이

...

<validation code> .... 

$todo = array(
     'name'=>$this->input->post('title'), 
     'description'=>$this->input->post('description') 
); 

$this->Todo_model->add($todo); 

그러나 나는 또한 다음 본 적이 ... 게시물 변수를 사용하는 것이 더 좋습니다

0

진짜 장점은 여기이 줄을 이해하지 못하는이

$account['email'] = $this->validation->email; 

대신

$account['email'] = $this->input->post('email'); 
+0

값이 유효 함을 의미하는 구문을 사용하여 값을 가져 오는 것이 좋습니다. –

관련 문제