2012-05-14 2 views
4

나는 이것이 완전히 잘못되었다는 것을 알고있다. 나는 앱을 작성하지 않았으며, 새로운 앱을 작성하는 동안 앱을 작성해야한다. GoDaddy가 우리 계정에 몇 가지 업데이트를 한 것처럼 보이므로 작동하지 않는 것들이 있습니다. 벌써 등록 글로벌을 켜고 많은 일이 정상적으로 돌아갔습니다. 자,이 숨겨진 필드 <input type="hidden" name="SUBMIT1" value="1" />PHP : POST를 간단한 변수로 변환 하시겠습니까?

내가 쉽게이 대신 수행하여 문제를 해결할 수있어 그 분야

if($SUBMIT1) { 
    // this part never gets executed. 
} 

에 대한 검사가 있습니다 ...

작동하지 않습니다. ..

if($_POST['SUBMIT1']) { 
    // this part never gets executed. 
} 

문제는,이 거대한 응용 프로그램이며 사방에 있음을 오랜 시간 동안 완료되지 않고 걸릴 거예요. 양식을 제출할 때 $_POST['WHATEVER']$WHATEVER으로 작동하도록 설정할 수있는 방법이나 설정이 있습니까?

+0

뭘라고 묘사하는'당신은 이미 당신을 표시 등록 Globals'이 켜져. 그래서, 나는 Register Globals를 실제로 작동 시키는데 당신이 무엇을했는지 확인하기 시작했습니다. – AndrewR

답변

8

당신이 설명하는 정확한 기능 얻을 extract를 사용할 수 있습니다

extract($_POST); 

여기 가능한 안전 문제를 참고 : 사용자가에서 "덮어 쓰기"기존 변수의 값을 $_POST에 추가 데이터를 보낼 수있는 당신의 암호. 이러한 문제를 방지하기 extract에 제 파라미터를 전달할 수있다 :이 이미 현재 범위에 일치하는 변수를 갖는 $_POST 어레이의 모든 필드를 추출하는 것 이동

extract($_POST, EXTR_SKIP); 

.

0

당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :

$_POST = array('SUBMIT1' => 'SUBMIT ONE', 'SUBMIT2' => 'SUBMIT TWO'); 

foreach($_POST as $k => $v) { 
    define(''. $k. '', $v); 
} 

echo SUBMIT1; // and so on 
0
foreach ($_POST as $key => $value) { 

     if(is_array($value)){ 
      foreach ($value as $k => $v) { 
       $$k = $v ; 

      } 
     }else{ 

      $$key=$value; 
     } 

     echo $key ." : " .$value."<br>"; 
} 
관련 문제