2011-03-19 4 views
2
foreach ($_POST as $key => $value) { 
    $_POST[$key] = mysql_real_escape_string($value); 
} 
foreach ($_GET as $key => $value) { 
    $_GET[$key] = mysql_real_escape_string($value); 
} 

안녕 모두,

나는 위의 코드와 oppsite SQL 인젝션 내 DB를 보호합니다. 하지만 내가 "Checkbox_IDS [] 양식과 같은 확인란의"이름 "정의 값을 게시하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?

이미 도움을 주셔서 감사합니다.PHP는 폼 포스트 문제

+0

도이 사이트를 참조하십시오 : http://www.htmlite.com/mysql002a.php 테이블 열에 사용할 수없는 예약 된 SQL 단어 –

+0

죄송합니다. 내 영어로는 충분하지 않습니다. – Kerberos

답변

1

Checkbox_IDS[]은 배열 변수가 있음을 의미합니다. 이 경우 평평하지 않은 구조를 처리하는 array_walk_recursive을 사용해야합니다. 유사한 사례를 보려면 http://www.php.net/manual/de/security.magicquotes.disabling.php#91653을보십시오. 귀하의 경우에는

당신은 같은 있지만, 적절한 탈출 기능을 할 것입니다 : 그것은 문자열이 모든 경우에 적합하지 않을 수 있습니다 것처럼 unilateraly 모든 것을 인용

function mysql_real_escape_recursive(&$value) 
{ 
    $value = mysql_real_escape_string($value); 
} 
array_walk_recursive($_POST, "mysql_real_escape_recursive"); 
array_walk_recursive($_GET, "mysql_real_escape_recursive"); 

참고. 이 미분류 SQL 이스케이프 처리가 방해가되는 HTML 컨텍스트에 이러한 변수 중 일부를 출력하게됩니다.

+0

슈퍼 전역의 내용을 일방적으로 변경하면 "처녀 (virgin)"데이터를 가져 오는 것에 의존하는 라이브러리를 엉망으로 만들 수 있습니다. –