2010-08-05 2 views
45

양식 관련 필드 (유형 = '숨김'없음)를 사용하지 않고 PHP 만 사용하여 $_POST['var']을 설정하는 방법이 있습니까? 와 비슷한 것양식을 사용하지 않고 POST 변수 설정

$_POST['name'] = "Denniss"; 

이 방법이 있습니까?

편집 : 누군가가 이것에 대해 자세히 설명해달라고 요청했습니다. 예를 들어, 나는 그것에 양식 페이지가 그래서, 양식은 제출 버튼을 클릭하면, 내가 next.php을 리디렉션 할이

<form method='post' action='next.php'> 
<input type='text' name='text' value='' /> 
<input type='submit' name='submit' value='Submit'/> 
</form> 

같이 보입니다. $ _POST [ 'text'] 변수를 다른 값으로 설정하는 방법이 있습니까? 어떻게하면 다른 제출 버튼을 클릭 할 때 (예를 들어) $ _POST [ 'text']가 숨겨진 필드를 사용하지 않고 next.php에서 설정 한 내용이 될 수 있도록 영구적으로 만들 수 있습니까?

아직도 명확하지 않은 경우 알려 주시고 도움을 주셔서 감사합니다.

+3

사용자가 일부 페이지에 액세스 할 때 서버 코드 또는 클라이언트 측을 의미합니까? –

+2

당신이하려는 일을 자세히 설명해 줄 수 있습니까? cURL이 옵션 일 수도 있고 세션이 다른 옵션 일 수도 있습니다. 너무 모호하여 정확한 답을주지 못합니다. –

+0

무엇? 그리고 숨겨진 필드를 사용하고 싶지 않은 이유는 무엇입니까? 그것이 바로 그들이 원하는 것입니다. –

답변

64

예, 단순히 다른 값으로 설정 text 배열의 키. $_POST은 세계 전역이 이고 연관 배열이이고 일반 PHP 배열과 같은 값을 변경할 수 있습니다.

주의 :이 변경 사항은 동일한 PHP 실행 범위에서만 볼 수 있습니다. 실행이 완료되고 페이지가로드되면 $_POST 어레이가 지워집니다. 새로운 양식 제출은 새로운 $_POST 배열을 생성합니다.

양식 제출간에 값을 유지하려면 양식에 input 태그의 value 속성으로 넣거나 데이터 저장소에서 검색해야합니다.

+0

숨겨진 필드로 설정하지 않고 다른 제출 버튼을 클릭하면이 상태가 유지됩니까? – denniss

+0

@denniss : 양식을 제출할 때 필드의 이름이'text' 인 경우 다시 무시됩니다. 특정 값을 유지하려는 경우 세션을 사용하지 않는 것이 좋습니다. – Sarfraz

+0

사실, POST를 사용하여 수행 할 방법이 있는지 알고 싶습니다. – denniss

2

당신은 아약스를 사용을하거나 같은 + 내용 HTTP 헤더를 전송하여 할 수 있습니다

$_POST['text'] = 'another value'; 

이이에 해당하는 이전 값을 대체합니다 :

POST /xyz.php HTTP/1.1 
Host: www.mysite.com 
User-Agent: Mozilla/4.0 
Content-Length: 27 
Content-Type: application/x-www-form-urlencoded 

userid=joe&password=guessme 
+0

어떻게 데이터를 "에코"합니까? userid = joe & password = guessme? – Sydwell

+1

'parse_str (file_get_contents ('php : // input')); ' – stillstanding

+0

이것은 꽤 멋지다. 게시 된 값을 설정하는 대신 CURL을 사용할 수 있습니다. 나 맞아? – Sydwell

6

다른 값으로 $ _POST [ '텍스트'] 설정하려면, 왜 사용하지 : next.php에

$_POST['text'] = $var; 

를?

+1

"왜 사용하지 않는가"에 대한 대답은 \t @deceze (@ Nathan Arthur가 설명하는 저수준 단위 테스트를 제외하고)로 정확하게 주어집니다. $ _POST를 "변경"하지 말고 다음 양식 컨텍스트로 인해 변경 사항이 사라진 이유가 궁금합니다. –

1

jQuery를 사용하여이를 수행 할 수 있습니다. 예 :

<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> 

<script> 
    $.ajax({ 
     url : "next.php", 
     type: "POST", 
     data : "name=Denniss", 
     success: function(data) 
     { 
      //data - response from server 
      $('#response_div').html(data); 
     } 
    }); 
</script> 
+5

당신이 충분히 관심이 있다면, jQuery에서 빌리 조엘 (Billy Joel) 노래를 부르는 웹 페이지를 얻을 수도 있지만, 그렇게하는 것이 가장 좋거나 가장 우아한 방법은 아닙니다. jQuery는 훌륭하지만 불행히도 JavaScript를 악용하는 또 다른 백 가지 방법을 전 세계에 제공했습니다. EDIT : 원래 질문에 "양식과 관련된 필드 (형식이 '숨김')를 사용하지 않고 PHP 만 사용하여 $ _POST [ 'var']을 설정하는 방법이 있습니까?" "물어 보지 않았습니다. 또 다른 방법은 jQuery에서 뭔가 다른 일을 할 수있는 다른 방법 " –

+1

@ WebelITAustralia-upvoter savage af –

관련 문제