2010-03-12 5 views
1

drupal-6.16이 설치되었습니다. 게시물 http://drupal.org/node/222926#comment-930745에서 패치를 적용했습니다. 간단한 경우 정확하게 작동합니다. 그러나 다음 카운터 코드가 잘못 처리되고 drupal 다음에 카운터에 카운터가 표시됩니다.Drupal이 javascript의 태그를 잘못 이스케이프 처리합니다.

<br><br> 
Text 
<br><br> 
<!-- counter.1Gb.ua --> 
<script language="javascript" type="text/javascript"> 
cgb_js="1.0"; cgb_r=""+Math.random()+"&r="+ 
escape(document.referrer)+"&pg="+ 
escape(window.location.href); 
document.cookie="rqbct=1; path=/"; cgb_r+="&c="+ 
(document.cookie?"Y":"N"); 
</script><script language="javascript1.1" type="text/javascript"> 
cgb_js="1.1";cgb_r+="&j="+ 
(navigator.javaEnabled()?"Y":"N")</script> 
<script language="javascript1.2" type="text/javascript"> 
cgb_js="1.2"; cgb_r+="&wh="+screen.width+ 
'x'+screen.height+"&px="+ 
(((navigator.appName.substring(0,3)=="Mic"))? 
screen.colorDepth:screen.pixelDepth)</script> 
<script language="javascript1.3" type="text/javascript"> 
cgb_js="1.3"</script> 
<script language="javascript" 
type="text/javascript">cgb_r+="&js="+cgb_js; 
document.write("<a href='http://www.1Gb.ua?cnt=1416'>"+ 
"<img src='http://counter.1Gb.ua/cnt.aspx?"+ 
"u=1416&"+cgb_r+ 
"&' border=0 width=88 height=31 "+ 
"alt='1Gb.ua counter'><\/a>")</script> 
<noscript><a href='http://www.1Gb.ua?cnt=1416'> 
<img src="http://counter.1Gb.ua/cnt.aspx?u=1416" 
border=0 width="88" height="31" alt="1Gb.ua counter"></a> 
</noscript> 
<!-- /counter.1Gb.ua --> 

는 사람이 작업이 코드를 가지고 있는가 :

드루팔 문자열

"alt='1Gb.ua counter'><\/a>")</script> 

카운터의 전체 코드는 다음과

"alt='1Gb.ua counter' />&lt;\/a>")</a></script> 

에 수정?

이 코드를 올바르게 처리하려면 Drupal을 어떻게 수정해야합니까?

기타 제안을 환영합니다.

편집 :

제거 의견은 문제가 해결되지 않습니다.

+1

왜이 코드를 템플릿/테마 기능에 넣지 않으십니까? – googletorp

+0

고마워, 그건 좋은 생각이야, 나는 단지 드루팔 (Drupal을 시도하고 그것에 대해 많이 알지 못한다. 어쨌든, 나는 드루팔 (Drupal)이 설명한 문제를 해결하는 것이 좋다고 생각한다. 그리고 IMHO는 다른 누군가에게 일어날 수 있고 이미 그에게 고쳐질 수있다. – sergtk

+0

drupal.org에 버그를 게시 함 : http://drupal.org/node/741516 – sergtk

답변

1

HTML 수정자가 HTML 설명자를 사용하는 경우에만 설명합니다. 빠른 해결책은 주석을 제거하거나 HTML 교정기를 비활성화하는 것입니다.

HTML 교정기가 HTML 주석을 처리 할 수 ​​있으면 좋겠지 만 IMO HTML 주석은 노드의 내용에 속하지 않습니다. 마크 업을 복잡하고 특별하게 만들려고한다면 주석이 필요합니다. 귀하의 주제가 아닌 내용으로 속하는 지표.

귀하의 경우에는 자바 스크립트를 추가하고 싶습니다. 드루팔 (Drupal에는 drupal_add_js이라는 기능이 있습니다.이 스크립트는 스크립트를 추가 할뿐만 아니라 프로덕션 환경을 위해 캐시하고 축소 할 수 있습니다. 이렇게하면 성능이 향상되고 일반적인 방법으로 j를 Drupal 사이트에 추가 할 수 있습니다.

지금 가장 빠른 해결책 인 Drupal을 사용하려고하면 HTML 주석을 제거하기 만하면됩니다. 그러나 라이브 사이트 용으로 뭔가를 만들고 싶다면 drupal_add_js을 확인해야합니다.

입력 필터 설정은 관리/설정/필터에서 새 필터를 편집하거나 만들 때 여기에서 사용할 수있는 역할을 결정하고 HTML 교정기를 적용해야 할지를 결정할 수 있습니다.

+0

방금 ​​의견을 삭제하려고 시도했습니다. 도움이되지 않습니다. 카운터가 표시되지 않습니다. <\/a>이 여전히 이스케이프 처리되었습니다. – sergtk

+1

유효한 HTML처럼 보이지 않습니다. 잘못된 HTML을 게시하려면 입력란에 HTML 교정기를 제거하십시오. – googletorp

+0

"입력 형식"을 "전체 HTML"로 선택하려고했습니다. 도움이되지 않습니다. 나는 또한 모듈에서 "HTML 교정기"를 찾지 못했다. "필터"는 코드 모듈이기 때문에 비활성화 할 수 없다. ( – sergtk

0

drupal 7.x에서 수정되었습니다. 세부 사항은 here입니다.

+0

당신이 질문에 대답하지 않는 한 당신은 당신의 질문에 추가 세부 사항을 추가해야합니다. 내 대답은 btw 편집되었습니다. – googletorp

0

PHP 필터 모듈을 활성화하고 PHP로 입력 형식을 설정하면이 문제가 해결되었습니다.

0

모든 콘텐츠에 대해이 문제가 무작위로 Drupal6 개 있습니다. 편집기 사용 여부에 관계없이 필터링 됨, 전체 HTML 또는 PHP.

PHP에서 범인은 magic_quotes_gpc 플래그입니다.

나는 다행히도 이상한 도피의 모든 종류의 문제를 해결 한 php.ini에서 쉽게 해제 할 수있었습니다.

관련 문제