2013-06-23 4 views
3

POST 및 변수를 사용하는 양식이 있습니다. 양식을 제출 한 후에 변수를 가져올 수 있도록 $ _POST에 해당 변수를 설정하는 방법은 무엇입니까?

난 그냥

$_POST['variable'] = $variable; 

비어 끝 시도했다.

+1

여기에 양식 코드를 게시하십시오. 양식 값을 미리 채우려한다고 말하고 싶습니까? –

+0

숨겨진 입력에 넣을 수 있습니다. - form post -'$ variable = $ _POST [ 'variable']' – Sean

답변

-1

이 시도 :

$variable = isset($_POST['variable']) ? $_POST['variable'] : ''; 
+3

OP가 요구하는 바가 전혀 없다고 생각합니다.] –

+0

@CodyThompson ment. – Hast

+0

아, 나는 $ 변수가 요청에서 설정되지 않았다는 것을 의미한다고 생각했습니다. –

5

당신은 양식에 숨겨진 필드로 그 변수를 넣어해야하거나, 세션 변수를 사용합니다.

숨겨진 필드

<form method="POST" action="someactionpage.php"> 
    <input type="hidden" name="my_var" value="<?php echo $myvar; ?>" /> 
    <!-- ... --> 
</form> 

그리고 양식이 제출 될 때 $_POST['my_var']someactionpage.php에 후 그것을 얻을.

세션 변수

것처럼 일부에서 지적

$ _SESSION 변수

<?php 
    session_start(); // Just once at the beginning of your code 
    // ... 
    $_SESSION['my_var'] = $myvar; 
?> 

이내에서 보관하고

<?php 
    session_start(); // Same than before 
    // ... 
    echo $_SESSION['my_var']; 
?> 

추가 정보와 함께 다른 페이지를 검색 해답 및 의견을 보려면 항상 변수가 사전인지 확인해야합니다. 당신은 그걸 보장 할 수 없기 때문에 보냈습니다. 다만, (POST를 통해 발송에 실패) 필드 값을 쉽게 isset function

if (isset ($_SESSION['my_var'])) 
    // Do stuff with $_SESSION['my_var'] 

또는 코멘트에 Kolink 지적

if (isset ($_POST['my_var'])) 
    // Do stuff with $_POST['my_var'] 

으로 본 사용자에 의해 변경 될 수를 사용합니다. 그래서 항상 비 핵심 정보가 아닌 한 항상 세션 변수를 선호합니다.

+3

숨겨진 입력을 사용자가 변경할 수 있기 때문에'$ _SESSION'이'$ _POST '보다 선호됩니다. –

0

$ _POST 변수는 당신이 현재있는 페이지로 이전 페이지에서 전송됩니다. 당신이 실제로 POST 변수를 설정하지 말아야 의미

를 만의 콘텐츠를 검색합니다. 당신이 양식을 제출 다음 시간 후 변수를 설정하려면

, 당신은이 작업을 수행 할 수 있습니다 : 이것은 당신이 당신의 변수이 방법으로 액세스 할 수 있습니다에 제출하는 페이지를 의미

<input type="hidden" name="variable" value="<?php echo $_POST['variable']" /> 

:

$variable = $_POST['variable']; 

변수를 특정 사용자와 함께 유지하려면 세션을 조사해야합니다.

+0

당신이 그렇게 기울이면 게시물 변수를 설정할 수 있습니다. – Boundless

+0

정말요? 나는 그 때 나의 대답을 바꿀 것이다. –

0

$ _POST [ 'variable'] = $ foo를 사용하여 변수를 설정할 수 있습니다. $ _POST [ 'variable']는 PHP 스크립트가 실행을 마칠 때까지 또는 unset ($ _ POST [ 'variable'])을 사용할 때까지 계속 설정됩니다. 세션간에 변수를 유지하려고하면 세션을 사용해야합니다.세션 1에서

:

session_start(); 
$_SESSION['variable'] = 'foo'; 

가 서버에 다른 통화로 검색 :

session_start(); 
$variable = $_SESSION['variable']; 
+0

두번째 것은'$ variable = isset ($ _ SESSION [ "variable"])이어야합니까? $ _SESSION [ "variable"] : "default"; 왜냐하면 거기에 있다는 보장이 전혀 없기 때문입니다. 하지만 누군가가 쿠키 나 재미있는 URL을 사용하기를 원하지 않는 한, 질문에 대한 올바른 대답은 분명히 있습니다. 숨겨진 입력 요소가 이동하는 길입니다. – Fleshgrinder

1

PHP는 서버 측 언어입니다! 변수를 설정하여 다른 인스턴스에서 사용할 수 없습니다. 즉, 다시로드를 처리하면 PHP가 모든 것을 재설정합니다. 재로드 후에 정의 된 변수를 설정하려면 현재 세션을 사용해야합니다. 참조 :

<input type="text" name="my_var" value="<?= $myvar ?>" /> 

(참고, 필드 유형은 '숨길 수 없습니다 : http://de1.php.net/manual/en/book.session.php

<?php 
session_start(); 
$_SESSION['variable'] = 'my content'; 
1

당신은 이전 또는 제출 이후에 $ _POST ['my_var '] (모든 이름)을 설정할 수 있습니다 ') 두 가지 다른 유형의 화면에서 양식을 처리하는 코드가 있고 제출 후 양식 바 중 하나를 변경해야하는 경우 제출 후 코드에서 다음을 수행하십시오.

$_POST['t_mytext'] = "changed value (or whatever)";