2012-02-28 1 views
0

나는 서버에서브라우저로의 잘못된 출력을 막기 위해 PHP 문자열에서 html 요소를 이스케이프합니까?

입력 내부 자바 스크립트와 HTML을 선택 요소가 포함 된 문자열을 반향하는 데 문제가

내가 탈출 시도

<select "none";"="" :="" "block"="" ?="" services").style.display="this.options.selectedIndex" onchange="document.getElementById(" name="services"></select> 

브라우저에서

echo '<select name="services" onchange="document.getElementById("services").style.display = this.options.selectedIndex ? "block" : "none";" >'; 

출력 \ 문자를 사용하는 문자열이지만 아무 것도 작동하지 않는 것 같습니다.

echo '<select name="services" onchange="document.getElementById(\"services\").style.display = this.options.selectedIndex ? \"block\" : \"none\";" >'; 

출력

<select \"none\";"="" :="" \"block\"="" ?="" services\").style.display="this.options.selectedIndex" onchange="document.getElementById(\" name="services"></select> 

모든 트릭이나 해킹이 문제를 해결하려면?

감사

+2

내가보기 엔 당신이 HTML과 어떤 문자에 대한 자세한 내용은 제안이 속성 값에 사용할 수 있습니다. http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.2 – hakre

+0

@hakre - 문자열 내부의 유효한 입력 - http://www.w3schools.com/tags/tag_select.asp를 참조하십시오. - inb4 w3fools bandwagon – kaleeway

+0

** 입력 **은 유효하지 않습니다 (PHP 문자열에 도달하기 전에). 그것을 고치려고하는 것은 가능하지만 (ish) 소스에서 문제를 해결해야합니다. select 태그에 허용 된 속성은 부적절합니다 (무의미한 쓰레기 조각에 연결 했으므로 두 가지로 나쁘습니다). 문제는 일반적인 HTML 속성 규칙 인 값의 문자입니다. – Quentin

답변

3

시도 :

echo "<select name=\"services\" onchange=\"document.getElementById('services').style.display = this.options.selectedIndex ? 'block' : 'none';\" >"; 
+1

고마워요. – kaleeway

+1

그 다음 그의 대답을 받아 들인다! – ehudokai

+0

@ehudokai; 진정해! 가서 약초 차주세요! – kaleeway

-1
echo '<select name="services" onchange="document.getElementById(\"services\").style.display = this.options.selectedIndex ? \"block\" : \"none\";" >'; 
+0

고마워요.하지만 그걸 시험해 보았는데 여전히 잘못된 결과가 나왔습니다. – kaleeway

관련 문제