2017-10-19 5 views
0

저는 CodeIgniter를 사용하고 일부 입력 필드가있는 수식이 있습니다. 문제는 "&"과 같은 입력 필드에 특수 문자를 쓸 때 &으로 저장되고 값을 편집하기 위해 양식을 다시로드 할 때 이와 같이 표시된다는 것입니다. 많은 오류가 발생하며 해결해야합니다. 값을 "&"으로 저장해야합니다.PHP/MySQL - 폼 입력 값 "&"은 "&"으로 저장됩니다.

I 그런 입력 필드 form_validation을 사용

$this->form_validation->set_rules("input1", "Name", "required|trim"); 
$this->form_validation->set_rules("input2", "Name", "required|trim"); 

나중에, I는 어레이의 모든 입력을 기록하고 모델의 함수로 넘겨 :

$input= array(); 
$input["input1"] = set_value("input1"); 
$input["input2"] = set_value("input2"); 
$this->MInput->update_input($input_id, $input); 

모델 다음과 같이 표시됩니다.

function update_input($input_id, $input) { 
    if($this->db->update("pa_it_input", $input, "id = $input_id") === FALSE) { 
     $error = $this->db->error(); 
     log_message("error", "Database error in MInput [".$error["code"]."] ".$error["message"]); 
     return FALSE; 
    } 

무엇이 오류의 원인인지는 알 수 없습니다. 모든 테이블이 UTF-8로 설정되어 있고 페이지가 UTF-8로로드되어 있는지 확인했습니다.

+0

그렇다면 문자열을 전달하는 인터페이스의 문서는'&'& '&'같은 문자 및 문자열에 대해 어떻게 말합니까? [mcve]에 대해서도 읽고 읽으십시오. – philipxy

+0

이것은 아래의 ff 링크와 유사합니다. https://stackoverflow.com/questions/11704233/the-best-way-to-store-ampersand-in-mysql-database AND https://stackoverflow.com/questions/ 3545735/저장 앰퍼샌드 - 데이터베이스 – Riyenz

+0

아마도 귀하의 양식과 관련이있을 것입니다. 보여주십시오. formhelpers 또는'form_prep()'사용 –

답변

0

PHP와 관련이 있습니까? 어떤 PHP 버전입니까? "마술 따옴표"가 켜져 있습니까?

htmlentities()을 호출하는 코드가 있습니까?

& ->&은 "UTF-8"이 아닌 "HTML 엔터티"문제입니다.

테이블에 가져 오는 CodeIgniter는 무엇입니까? 아마도 이런 불필요한 변화가 있을까요? 들어오는 'form'텍스트를 HTML로만 사용한다고 가정하는 것은 실수입니다. 귀하의 경우에는 이스케이프 메커니즘이 필요한 MySQL로갑니다.