2011-10-09 3 views

답변

6

당신은 당신이 배열 가능성이 객체를 할 수 있도록해야

<script> 
    php_variable = <?= json_encode($php_variable) ?>; 
</script> 

뭔가를 할 수 있습니다. PHP 5.2 이상이 필요합니다. json_encode없이 붙어 있다면 addslashes에 대한 호출을 인용 부호로 묶을 수는 있지만 배열 등을 할 수는 없습니다. 당신의 의도가 어떤 형태 내에서 값을 설정하는 경우 필요한 경우

<input type="text" name="stuff" value="<?= htmlentities($stuff) ?>"> 

물론

, 당신은 스크립트 내에서 해당 요소의 값에 액세스 할 수처럼

, 당신은 할 수 있습니다.

두 가지 핵심 포인트가 떨어져 여기에 걸릴 : 그것은 기쁘게로 PHP 이후

  • 이 페이지가 출력 할 수있는 물건을 생성 - 심지어 오른쪽 <script> 요소의 중간에. 이 매개 변수를 사용하여 서버에서 클라이언트로 변수를 전송할 수 있지만 그 반대는 불가능합니다. (클라이언트 변수를 전송하는 것은 ... 음 ... XHR 또는 양식 제출이 필요합니다.)

  • 항상 PHP에서 HTML, JS 또는로 이동하는 경우에는 이스케이프 처리가 필요합니다. 직접 SQL에. 서버를 모두 지연시키지 않으면 (예 : 마술 따옴표 사용 가능) PHP는 데이터를 원시로 가져 오며, 그 중 하나 또는 모두를 중단시키는 특수 문자를 가질 수 있습니다.

* 좋아,하지 매우 항상. HTML/JS로 출력하려는 ​​일부 HTML 또는 JS가 포함 된 PHP 변수가있는 경우 이스케이프 처리하지 마십시오. 그러나 "XSS"의 의미를 알아야하며 사용자가 제공 한 데이터를 맹목적으로 출력하지 않아야합니다.

-3

자바 스크립트는 클라이언트 측이고 PHP는 서버 측이므로 서버 측 세션 변수 (PHP)에 액세스하려면 ajax (javascript)를 사용해야합니다. jquery의 ajax 프레임 워크를 연구 할 것을 권합니다.

-6

이 간단한 작업을 수행 할 수 있습니다.


function reset1() 
{ 
//document.frmadd.intFaqCategoryTypeID.value='1'; 
document.frmadd.reset(); 
document.frmadd.intChatRoomCategoryId.value='<?php echo $intChatRoomCategoryId ; ?>'; 
document.frmadd.intEventId.value='<?php echo $intEventId ; ?>'; 
document.frmadd.intGroupId.value='<?php echo $intGroupId ; ?>'; 
document.frmadd.intMemberID.value='<?php echo $intAddedByMemberId ; ?>'; 
return false; 
} 
+2

-0.50 변수를 이스케이프 처리하지 않았 음을 나타냅니다. 여전히 헝가리 표기법 (ish)을 사용하는 경우 -0.25 : 기타 사소한 문제의 경우 P -0.25. – cHao

+9

나는 빨리 엉망이되는 사람의 능력을 질투하지 않는다. 이스케이프 처리를하지 않으면 해당 변수에있는'''이 스크립트를 손상시킵니다. 더 심한 경우 XSS 공격에 대해 열어 둘 수 있습니다. – cHao

+0

@cHao : 문제를 다른 것으로 돌리지 말고, 지금 답을 보여주십시오! –

관련 문제