내가 잘못하고있는 것을 알아 내지 못합니다. 입력을 위생해야합니다. 작은 따옴표 나 아포스트로피를 제거하기 위해 찾을 수있는 모든 것을 넣었습니다. 이것은 다른 상황에서는 작동하지만 여기서는 작동하지 않습니다. 작은 따옴표 나 아포스트로피가 백 슬래시로 바뀌는 문자열을 반환합니다. (?!)내 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']);
}
[나를 위해 작품 (https://3v4l.org/o1K3b) –
시도에 메타 캐릭터 세트를 추가 문서'' – Cyclonecode
SQL 삽입을 위해 살균하려고합니까? 그렇다면 더 좋은 방법이 있습니다. 준비된 문장에 대한 MySQL 매뉴얼을보십시오 : http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – garrettmurray