2013-11-22 2 views
0

사용자 데이터 (성)를 기반으로 페이지의 요소를 조작하고 싶습니다. 내가 양식을 작성하고, PHP 페이지에 입력 데이터를 업데이 트하는 게시물을 사용합니다. 그리고 JQuery와에 잡아 :

양식 페이지 : 내 생각은 DOM에 $ _POST 값을 얻을 수 있었다

<form action="display.php" method="post"> 
<input type="text" name="test" /> 
<input type="submit" value="go!!" /> 
</form> 

Display.php을

<?php 
//store post value in var 
$var = $_POST['test']; 
?> 

<body> 
<?php 
echo '<form action="" method="">'; 
echo '<input type="hidden" class="grab" name="name1" value="' . $_POST['test'] . '">'; 
echo '</form>'; 
?> 
<script type="text/javascript" src="js/script.js"></script> 
</body> 
(HTML 이상)

(html)

script.js

var grab = $('input.grab').val(); 
document.write(grab); 

나는 PHP는 초보자이고 내가 클라이언트 측 개발자가 아닌 서버 사이드로 내 모든 문제를 해결하고 있음을 알고 있습니다. 나는 끔찍한 잘못을 저질렀 는가? 또는 더 좋은 방법이 있습니다

+0

POST 대신 GET을 사용했다면 JavaScript를 사용하여'window.location.search' 쿼리 문자열에서 값을 추출 할 수 있습니다. – Blazemonger

+0

어쨌든 자바 스크립트를 사용하는 경우 양식을 게시하지 않는 것이 더 쉬우 며 입력 처리기로 직접 입력 값을 캡처 할 수 있습니까? – adeneo

+0

그냥 궁금해서 .. 바로 입력 된 값을 보여주고 싶습니까? 그렇다면 왜 모든 PHP를 일관성있게 사용하지 않는가? 죄송합니다. 호기심이 생겨서 정말 새롭습니다. – Dora

답변

1

괜찮습니다. JavaScript는 클라이언트 측 언어이기 때문에 서버에서 사용할 수있는 변수에 JavaScript가 액세스 할 수있는 방법으로는 완벽하게 수용 할 수 있습니다.

또한 같은 것을 사용할 수

: XSS를 방지하고 POST 데이터에 따옴표와 함께 문제를 방지하려면

<script> 
    var myVar = '<?php echo $_POST['var']; ?>'; 
    console.log(myVar); 
</script> 

을, 당신은 htmlspecialchars를 사용하여 출력을 살균해야합니다 그렇지 않으면

<script> 
    var myVar = '<?php echo htmlspecialchars($_POST['var'], ENT_QUOTES, 'utf-8'); ?>'; 
    console.log(myVar); 
</script> 

, $ _POST를 [ 'var'] = 'example은 JS를 해치고 XSS 취약점을 열어줍니다.

+1

당신은 분명히 JS 구문 오류 또는 XSS 공격. –

+0

@JesseBunch가 나는 알고있다. 난 그냥 대답을 복잡하게하고 싶지 않았다을 방지하기 위해 출력을 탈출 할 것이다. 나는 추가합니다 다른 더 안전한 예를 들자면 누군가가 복사하여 붙여 넣기를 결정할 때를 대비하여. –