2010-05-11 3 views
0

나는이 케이스를 자신에게 제출하는 간단한 PHP 페이지로 만들었다. 내 문제는 내가 트랙 대회 결과를 제출하고 여자 이름 중 하나가 에코 ... 사랑스러운 이름이라는 것입니다.PHP에서 "; Echo"가 포함 된 문자열을 어떻게 sanitize합니까? (나는 단단한 이유가있다)

내가 제출하는 문제는 다음과 같습니다. 장대 높이뛰기 - Rachel Simons, Tow, 8-6; Echo Wilson, Cit, 8-0; 몰리 랜들, 토우, 7-0;

그래서 당신이 제출 한 후 ...

를 에코 다음에 공백 다음에 세미콜론을 참조는 말한다 : POST는 최종 목표를 저장하는 것입니다

를 지원하지 /results/test.php하기 그것을 다른 정보와 함께 데이터베이스에 저장하고 검색 페이지를 찾아 화면에 전체 결과를 인쇄하십시오. 이 모든 오류를 해결하기 위해 모든 데이터베이스 항목을 제거했습니다. 나는 의도적으로 그녀의 이름을 잘못 철자 할 수는 있지만이 문제를 해결할 길은 있어야합니까?

다음은 테스트 PHP 파일입니다. 당신이 요청을 스캔하고 그들이 위험 할 수처럼 보이는 사람을 거부 일부 절름발이 보안 시스템 (아마도 mod_security?)를 가지고있는 것처럼

<html> 
<head> 
<title>title</title> 
</head> 
<body> 
<?php 
echo "<h3>Edit meet info below</h3>"; 
echo "<form action=\"test.php\" method=\"post\" id=\"submitForm\">"; 
echo "Full Results:<br/><textarea NAME=\"results\" id=\"results\" rows=\"20\" cols=\"80\" MAXLENGTH=\"8191\"></textarea><br/><br/>"; 
echo "<input type=\"submit\" name=\"submitMeet\" value=\"Submit\">"; 
echo "</form>"; 
?> 
</body> 
</html> 
+1

나는 달리기를 좋아합니다. –

답변

4

는 소리가 난다.

웹 호스트 나 다른 사람이 사용을 중지 할 수 있는지 물어야합니다. 모든 텍스트 조합을 기반으로 POST 요청을 임의로 거부하는 PHP 기능은 없습니다. (최소한이 경우가 아닙니다.)

+0

전화하세요. 나는이 게시물을 발견했다 : http://www.liewcf.com/archives/2008/05/how-to-disable-mod_security-in-htaccess-file/ 나는 나의 호스트와 지원 티켓을 열고 그들에게 물었다. 포트 검색을 비활성화합니다. SecFilterScanPOST 끄기 티켓이 닫히면 테스트 파일을 시험해 보았습니다. –

0

이름을 변경하려면 이름을 변경해야합니다. 이름 ... 이름.

심각하게도 webdestroya가 제안한 내용을 살펴보십시오. 만약 실패한다면, POST 요청에서 이름을 분리하기 위해 사용하는 구분 기호를 변경 한 다음 수신 된 후 해당 구분 기호를 다시 세미콜론으로 변경하는 것이 신속하고 더러운 해결책이라고 생각합니다.

Pole vault - Rachel Simons, Tow, 8-6||Echo Wilson, Cit, 8-0||Molly Randall, Tow, 7-0|| 

가 다음을 수행하십시오 : 그래서 당신이 뭔가를 POST 것이라고하면 결과를 입력 할 때 수동으로 구분 기호를 입력하지 않으려면

$data = str_replace('||', ';', $the_data_you_posted); 

, 당신은 변환하는 작은 자바 스크립트를 작성할 수 세미콜론은 자동으로 에 제출하십시오.