2012-02-22 2 views
0

데이터베이스에 HTML 값을 저장하고 사이트에 출력합니다.
"잘라 내기"HTML이있는 HTML 값이 있습니다 (다른 웹 사이트 "라고 표시 함).데이터베이스에서 HTML 값을 "잘라내어"사이트에 출력합니다.

과 같은 의미입니다. 이

<a href="http://site.com <input type="button" value="test" /> 

이 (예)처럼 보이는 있도록

<a href="http://site.com 

나는 출력이 내가 때문에 그 아래에 문제가있어 내 사이트에 "차단"HTML은 다른 HTML은 영향을받을 때 내 여기서 질문은 HTML이 잘리는 지 어떻게 알 수 있겠습니까? 그렇다면 잘라내어도 간단하게 닫을 수 있습니다. 르 폐쇄 함께 " or />

+2

코드를 게시 할 수 있습니까? 정확히 무슨 일이 일어나고 있는지. 귀하의 게시물을 읽는 동안 완전히 혼란 스럽습니까? –

+0

정확히 어떤 부분을 혼동 했습니까? 나는 그것을 잘 설명하는 것처럼 느낀다. :) – PinoyStackOverflower

+2

당신이 한 일과 습득하고자하는 것 –

답변

1

차단 여부를 확인하는 방법은 <의 금액이>의 금액과 동일한 지 확인하는 것입니다. 이렇게 :

<?php 
list($len, $a, $b) = array(strlen($html), 0, 0); 
for ($i = 0; $i < $len; $char = $html[$i++]) { 
    if ($char == '<') 
     $a++; 
    if ($char == '>') 
     $b++; 
} 
$broken = true; 
if ($a == $b) 
    $broken = false; 
+0

오, 이런! 거의 모든 사람들이하지 않았고 저에게 투표를 내려 준 사람이 있기 때문에 제 질문을 이해 한 사람이 있습니다. 대답은 나를위한 좋은 시작입니다. 감사합니다. 대단히 감사합니다! :) – PinoyStackOverflower

+1

당신은 환영합니다. 다행했습니다. – Sietse

1

어떻게 그들을 데이터베이스에 저장합니까? 데이터베이스에서도 차단 되었습니까? 그렇다면 mysql_real_escape_string()을 통해 데이터베이스에 저장했는지 확인하십시오. HTML이 어떻게 든 데이터베이스에 삽입되어 파손 된 것 같습니다.

+0

질문은 데이터베이스에 저장하는 방법에 관한 것이 아니라 데이터베이스에서 cutoff html 값을 출력하는 것입니다. 그렇기 때문에 역시 데이터베이스에서 잘립니다. , like like

가 없습니다. –
                        
                            
    PinoyStackOverflower
                                
                            
                        
                    

+0

문제가 따옴표로 인해 문제가 발생했다면 그는 알게되었을 것입니다 (쿼리는 ..broke를 가졌을 것입니다). Mysql_real_escape_string()은 html과 아무런 관련이 없습니다. 그렇지 않으면 –

+1

문제가 출력이나 데이터베이스에 입력되지 않지만 HTML을 가져 오는 위치가 어디인지에 따라 깨진 태그보다 훨씬 더 많은 것을 검증해야합니다. 출력 대신이를 수정해야합니다. – kingmaple

관련 문제