저는 클라이언트 용 CMS를 구축하고 있습니다 (Wordpress 상단에 구축). 내 데이터베이스에서 돌아 오는 일부 데이터에 문제가 있습니다.Javascript 객체가 PHP 파값 (HTML이 있음)을 찾지 못했습니다.
기본적으로 마우스 클릭시 내 사이트의 특정 영역을 업데이트 할 수 있도록 PHP 데이터에서 Javascript 객체를 작성하고 있습니다.
예 (이 잘 작동 것) : 데이터가 내 데이터베이스에서 다시 가져올 때
이<script language = "Javascript>
var myObject = new Object();
function updateDiv(id)
{
myObject.name = '<?php echo $valueName ?>'; // $varHeadline = "Bob"
myObject.headline = '<?php echo $value_headline ?>'; // $varHeadline = "My Story"
var div = document.getElementById(id).innerHTML = myObject.name +
'<br>' + myObject.headline';
}
</script>
문제가 나오면 이미 일부 HTML 또는 줄 바꿈이 있습니다.
예 :
echo $varHeadline;
// returns <h1>This is my headline</h1>
// This is part of the value too.
내가 그 데이터를 자바 스크립트 객체 생성 그래서 경우 :
function updateDiv(id)
{
myObject.headline = '<?php echo $varHeadline; ?>';
var div = document.getElementById(id).innerHTML = myObject.headline;
}
내가 내 자바 스크립트에서 오류가 발생할 수 있습니다. I 은 자바 스크립트 개체 데이터로 내 div를 채우는 것을 좋아하지만 HTML이 포함 된 데이터 (또는 해당 문제에 대해 단일 따옴표 또는 큰 따옴표 포함)를 고려할 수 없습니다.
HTML 형식 (예 : <h1> 태그 등)을 유지하려는 경우 htmlspecialchars 또는 strip_tags를 사용하면 문제가되지 않습니다. Javascript를 죽이지 않고 반환 된 HTML을 저장하는 데 어려움이 있습니까? 미리 감사드립니다. -J
$ varHeadline을 삭제하는 것을 잊지 마십시오. 그렇지 않으면 사이트의 XSS 보안 구멍에 대한 바로 가기입니다. – StasM
@StasM, 좋은 지적입니다. 그의 목표는 임의의 HTML을 페이지에 넣을 수 있도록하는 것이지만, 나는 자신의 HTML 만 참조하고 있다고 가정하고있었습니다. 나는 그것을 추가 할 것이다. –
실제로 HTML은 내 자신의 출처입니다. 답변 주셔서 대단히 감사합니다. –