Extra Form
PHP PHP 5.x
CMS XpressEngine

현재 xe 1.11.6으로 업데이트 하여 발생하는 문제들을 해결하고 있습니다.

스케치북을 사용한 계시판 상단에 코드가 그대로 노출되고 있어요 -ㅜㅜ

이전에는(1.8.4버전)

써넣은 코드의 이미지가 노출되었습니다. ~~

스케치북의 요 기능을 사용하고 있습니다.

 

problem.jpg

 

스케치북의 이 기능은  textarea 확장변수에  rd_preview를 만들고 

이후 불러오는 기능 입니다.

 

체크] 스케치북 게시판의 

제목 블로그 스타일이 나온   _read.html 열어  

찾아 보면 관련코드는 

 

{$oDocument->getExtraEidValue('rd_preview')}  요부분을

{strip_tags($oDocument->getExtraEidValue('rd_preview'))} 

 

으로 변경하였는데 

html 테그가 그대로 보입니다.

 

서버환경 확인했는데

PHP5.5, MySQL5.x 인데

strip_tags가 안 먹혀요~~ ㅜㅜ

 

  • profile
    뜯어보지 않아서 잘은 모르겠지만 확장변수값이 htmlentities로 처리가 돼 있는 게 아닐까요?
    그러니 strip_tags로 걸러지지 않는 것일지도요.

    {html_entity_decode($oDocument->getExtraEidValue('rd_preview'))}
    로 하면 왠지 태그가 적용돼서 페이지에 로드가 될 것 같고,

    {strip_tags(html_entity_decode($oDocument->getExtraEidValue('rd_preview')))}
    로 하면 태그 제거한 문자열만 나올 것도 같고 그렇습니다.

    저도 잘 모르는 데다 직접 시연을 해본 것은 아니어서 정확한 답은 아닐 수 있을 거예요.
  • profile
    아, 뜯어보니 확장변수값은 escape 처리돼서 나오네요.
    https://github.com/rhymix/rhymix/blob/0f33fa653944bb5a68d1dc6b6f123539b63206cd/common/functions.php#L185

    {htmlspecialchars_decode($oDocument->getExtraEidValue('rd_preview'))}
    또는
    {strip_tags(htmlspecialchars_decode($oDocument->getExtraEidValue('rd_preview')))}
    으로 해보시면 어떨까 합니다.
  • ?
    {html_entity_decode($oDocument->getExtraEidValue('rd_preview'))}
    로 하니 제대로 되었습니다.
    굉장히 고생했는데 이 곳에서 해결책을 찾았네요
    정말 감사합니다. 윤삼님~~ 꾸벅
  • ?
    다시 한번 올려주신 답글에서
    {htmlspecialchars_decode($oDocument->getExtraEidValue('rd_preview'))} 도 잘 적용이 되고

    {strip_tags(htmlspecialchars_decode($oDocument->getExtraEidValue('rd_preview')))}
    는 액박으로 창오류만 뜨네요

    strip_tags는 안 먹히는 것 같아요
  • ? profile
    애초에 변수값 초기 출력이 htmlspecialchars 함수를 거쳐나오는 것이니
    html_entity_decode 보다는 htmlspecialchars_decode 함수가 더 적절해보입니다. :)
  • profile ?
    설명까지 곁들여 주셔서 감사합니다.
    한 수 배우게 되었습니다.