2009-11-29 3 views
0

php 및 Zend MVC에 Doctrine ORM을 사용하고 있습니다. 나는 mysql 데이터베이스가있다. 데이터베이스에 삽입하면 따옴표가 이스케이프됩니다. 다른 단어를 입력 할 때 내 양식에Doctrine quoting apostrophes

<input name="customer_name" value="Test'ed user"> ... 

을 입력하고 doctrine 객체에 할당하고 저장합니다.

내가 MySQL의 명령 줄을 통해 데이터베이스를 보면 나는

Test\'ed user 

이를 해제하는 방법이 있나요 얻거나 내가 각 변수에 stripslashes()를 호출해야합니까?

답변

2

magic_quotes_gpc이 활성화되어 있는지 확인하려면 php.ini를 보거나 get_magic_quotes_gpc()을 실행하십시오.

php.ini에 액세스 할 수있는 경우 해제하십시오. 그렇지 않으면 stripslashes()을 사용하여 스크립트에서 슬래시를 제거해야합니다.

+0

간단합니다. 오랫동안 활성화 된 서버를 사용하지 않았습니다. 감사합니다 –

1

당신은 전부 페이지의 상단에 같은 것을 추가하여 magic_quotes_gpc 전염병을 방지 할 수 있습니다

if(get_magic_quotes_gpc()) { 
    if(!function_exists('stripishlashes_all')) { 
     function stripslashes_all(&$data) { 
      foreach($data as &$_value) { 
       if(is_array($_value)) { 
        stripslashes_all($_value); 
       } 
       else { 
        $_value = stripslashes($_value); 
       } 
      } 
     } 
    } 
    stripslashes_all($_REQUEST); 
} 

코드는 당신이 완벽하게 제어 할 이상이없는 서버에서 실행되는 경우, 매우 유용하거나 당신이 그것을 배포하려는 경우.

+1

$ _REQUEST에 배열이 포함되어있는 경우에는이 기능이 작동하지 않도록주의하십시오! –

+0

좋은 지적입니다, 벤. 내가 수정 코드를 업데이 트했습니다. – Atli

+0

좋은 속임수. 감사. –