2017-02-17 7 views
0

내가 잘못하고있는 것을 알아 내지 못합니다. 입력을 위생해야합니다. 작은 따옴표 나 아포스트로피를 제거하기 위해 찾을 수있는 모든 것을 넣었습니다. 이것은 다른 상황에서는 작동하지만 여기서는 작동하지 않습니다. 작은 따옴표 나 아포스트로피가 백 슬래시로 바뀌는 문자열을 반환합니다. (?!)내 PHP str_replace 함수가 하나의 POST 양식에서만 작동하지 않습니다.

기능은 다음과 같습니다

function sanitize($data) 
{ 

    return strtolower(str_replace(['’',';',"'",':',"'","’",''','"',' ','`','delete','update','drop','create'], '', htmlspecialchars($data))); 

} 

그럼 나는 "조의 식당을"말을 하나 개의 형태로 제출하는 경우에, 나는 "조 \의 sdiner"를 얻을 돌아왔다. "joesdiner"가 필요해.

저는 프로그래머가 아니므로 사과해야합니다.

편집 :

어쩌면 페이지에 있습니까?

<form action="/test-breeding/" method="post"> 
First: <input type="text" name="first"> 
Second: <input type="text" name="second"> 
<input type="submit" name="submit" value="submit"/> 

</form> 
<br><br> 

<?php 

if(isset($_POST['submit'])) 
{ 
$first  = sanitize($_POST['first']);  
$second  = sanitize($_POST['second']); 
} 
+1

[나를 위해 작품 (https://3v4l.org/o1K3b) –

+0

시도에 메타 캐릭터 세트를 추가 문서'' – Cyclonecode

+0

SQL 삽입을 위해 살균하려고합니까? 그렇다면 더 좋은 방법이 있습니다. 준비된 문장에 대한 MySQL 매뉴얼을보십시오 : http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – garrettmurray

답변

0

어쩌면 그것은 마법 따옴표 뭔가,이 같은 stripslashes을 추가하려고 :

$first = sanitize(stripslashes($_POST['first'])); 
+0

감사합니다. 나는 sanitize() 후에 그것을 추가했다. 간단한 수정. 그러나 나는 준비된 진술을 곧 사용할 것이라고 약속한다 !! 모든 도움을 주셔서 감사합니다. – ngtess