2011-09-20 2 views
1

build.php 페이지가로드 될 때 실행되는 PHP 함수가 있으며 $ 변수가 작성됩니다. save.php도 있는데, 이는 scripts.js (POST를 통해 데이터를 가져옴)에서 ajax 함수를 통해 호출되지만 save.php에서 $ variable을 사용해야합니다.프론트 엔드에서 보이지 않고 아약스에 의해 호출 된 한 php에서 다른 php로 변수를 전달할 수 있습니다.

아약스를 통해 추가 데이터를 보낼 수있는 좋은 방법이 프런트 엔드에 표시되지 않습니까?

이 변수는 $ _SESSION 변수를 사용하여 작동하는 것으로 생각했지만 완전히 신뢰할 수는 없으며 언제나 좋은 생각이 아닐 수 있습니다 (위의 코드는 where I was looking 일 수 있음).

이것이 최선의 방법입니까? 아니면 프런트 엔드 코드에 있지 않고 자바 스크립트를 통해 다른 변수에 PHP 변수를 가져 오는 다른 방법이 있습니까?

$.post({ 
    url: somurlhere, 
    data: somedatahere 
}); 
+0

JS 코드는 정의 프런트 엔드 코드입니다. 누구나 JS 코드를 열고이 "숨겨진"var을 찾을 수 있습니다. –

+0

예 차단할 절대적인 방법이 없다는 것을 알고 있지만 더 잘 숨길 수있는 방법이있을 수 있습니다. 세션을 사용하면됩니다. – Damon

답변

0

세션 변수가없는 클라이언트, 서버에만 존재합니다으로

+0

예. 그게 내가하고있는 일이야. build.php는 save.php에 필요한 변수를 생성하지만 save.php는 ajax를 통해 호출되고 POST로 데이터를 입력한다. 세션을 사용하는 것이 좋지 않은 것처럼 주위를 읽는 것에서 보았지만 다른 방법을 사용하지 못했습니다 ... – Damon

+0

첫 번째 스크립트에서 변수를 만들고 두 번째 스크립트에서 변수를 사용해야하는 경우 세션 변수를 확실히 사용할 수 있습니다. 나는 나의 대답을 업데이트했다. – jdias

0

당신이 jQuery를 사용한다면, 그것은 쉽게합니다. 자바 스크립트 함수에서 생성 한 세션 변수를 브라우저에 저장하려면 어떻게 든 서버에 전달해야합니다. 그리고 아마 당신이 클라이언트 측에서 일어나는 일에 대해 많은 것을 제어 할 수 없다는 것을 알게 될 것입니다. 그들은 당신이 서버에 보내는 모든 게시물 정보를 거의 바꿀 수 있습니다 - 꽤 쉽게 할 수있는 프로그램이 있습니다.

아약스를 사용하더라도 클라이언트는 여전히 변수를 혼란스럽게 할 수 있습니다.

정보를 보내기 전에 암호화하려고 시도 할 수 있습니다.

한편 서버에서 실행되는 두 스크립트 사이에서 변수를 전달하려면 세션 변수를 사용하여이를 확실히 수행 할 수 있습니다.

업데이트

당신이 첫 번째 스크립트의 변수를 만드는 다음 두 번째 스크립트를 호출하는 자바 스크립트 함수가있는 것 같습니다 당신이 만든 변수에 액세스 할 두 번째 스크립트가 필요합니다 첫 번째 스크립트.

위 시나리오에서 세션 변수를 사용할 수 있습니다. 이것이 그들이 존재하는 주된 이유입니다. 다른 스크립트간에 정보를 전달할 수 있습니다.

먼저 PHP 스크립트

session_start(); 
logic to create the variable 
$_SESSION['myVar'] = $myVar; 
rest of the script 

자바 스크립트

calls second script/does not change the value of the variable 

두 번째 PHP 스크립트

session_start(); 
$myVar = $_SESSION['myVar']; 
execute second script 

나는이 말이 바랍니다.

+0

그 방법을 알고 있습니다. 예.그러나 javascript 파일은 데이터베이스 또는 페이지 자체에 인쇄 된 데이터 만 가져올 수 있습니다. 이 경우 외부 js 스크립트를로드하는 페이지의 일부인 스크립트에서 변수 값을 전달하려고합니다. – Damon

+0

@Damon이 부록과 함께 귀하의 질문은 인정하기가 어렵습니다. 귀하의 질문에 당신은 다른 하나 (어떤 "하나") PHP 변수를 전달 말한다. 위의 코멘트에서 당신은 페이지에로드 된 다른 js 스크립트로 js 변수를 보내고 싶다고 말하고 있습니까? 나는 매우 혼란 스럽다. – dqhendricks

+0

나는 매우 명확하게하려고 애를 썼다. – Damon

관련 문제