2009-06-14 3 views
1

이봐, 나는 클라이언트를 위해 웹 사이트에 피드백 양식을 프로그래밍하고 있지만, 100 개 이상의 입력 (모두 고유하게 이름이 지정됨)이 있습니다. 루프 내가 모든 변수를 얻기 위해 실행할 수 있었다면 내가 궁금해서이처럼 전화를해야 할 :폼에서 모든 변수를 호출하는 PHP 함수가 있습니까?

$variable = $_REQUEST['variable']; 

편집 :

에서 권장하는대로 내가 $ _POST와 함께 갈거야 모두들 - 입력 해 주셔서 감사합니다! 나는 수동으로 가서 $ _POST마다 줄을 써야 할 것이다.

+1

요청을 사용하지 마십시오, 그들이 게시하는 경우 POST를 사용하고, 그들이 URL에서 경우 GET. 진지하게. 언제 까지나 REQUEST를 사용해서는 안됩니다. –

+1

구체적으로 무엇을하고 있습니까? 왜 한 양식에는 100 개의 고유 입력이 있습니까? 더 나은 해결책이있을 수 있습니다. 저는 각 필드마다 다른 온 전성 검사가 필요하기 때문에 항상 양식 필드를 개별적으로 처리하는 경향이 있습니다. 그러나 나는 당신이 성취하려는 것을 모릅니다. –

답변

3

당신은 $ _PREQUEST 배열의 모든 veriables 이상 반복 할 수있는 형태로 제출하면 위의 조각은 당신에게 모든 설정 변수와 값을 표시해야합니다 :

foreach($_REQUEST as $key=>$value){ 
    //doStuff 
} 

그러나이 모두 포함됩니다에게 입력뿐만 아니라 매개 변수를 보냅니다. 또한 $ _REQUEST를 사용하지 말고 $ _POST 또는 $ _GET을 사용하면 안됩니다.

0

$_GET$_POST 배열 변수에는 각각 URL 또는 POST 메서드를 통해 전달 된 모든 매개 변수가 들어 있습니다. register_globals option 또는 extract function처럼 모든 항목을 추출하는 대신 해당 변수를 사용해야합니다. 이유는 Using Register Globals을 참조하십시오.

+0

등록 전역이 * 전혀 * 좋은 생각이 아니라는 것을 분명히 할 수 있습니다. 어떤 이유로. * 좋은 생각이 웹 사이트로 보이는 보안 구멍을 쓴다고 생각하는 사람들. –

0

위의 내 의견에서와 같이 요청을 사용하지 말고 POST를 사용하십시오. 아마 일어날 일을 알 수 있도록 각 줄을 써야 할 것입니다. 사람들이 파싱 된 추가 변수를 게시하는 것을 원하지는 않습니다.

0

게시 된 양식에서 모든 입력을 알고리즘 방식으로 얻는 간단한 코드를 작성할 수는 있지만 이것은 위험한 사업이며 착취를 위해 익숙합니다.

1
echo "<pre>"; 
print_r($_POST); // or $_GET 
echo "</pre>"; 

당신이 가능성의 이름을 알고하지만 당신이 생각하는 것보다 값이 다음 훨씬 더 큰 문제를 다루고있는이 필요하지 않습니다 항목을 처리하는 경우.

하지만

+0

OP에 대해 알아두면 유용하지만 실제적으로 도움이되지는 않습니다. –

3

고유 한 이름의 변수가 수백 개 있고 싶지 않고 데이터 배열을 클라이언트 측으로 가져 오려는 경우 편리한 양식 트릭이 있습니다. 시도하고 싶다.

<form> 
    <input name="foo[a]" type="text" /> 
    <input name="foo[b]" type="text" /> 
    <input name="bar[]" type="text" /> 
    <input name="bar[]" type="text" /> 

클라이언트 측 :

<?php 
    $_POST['foo']['a']; 
    $_POST['foo']['b']; 
    $_POST['bar'][0]; 
    $_POST['bar'][1]; 
?> 
1

난 당신이 만 이상 당신이 기대하는 모든 변수의 목록 및 루프로 시작한다고 생각합니다. 그렇지 않으면 해커가 에 변수 이름 인을 삽입 할 수 있습니다. 실제로, 당신은 Register Globals이라는 끔찍한 나쁜 생각을 재현하고 있습니다. 그러니하지 마세요 ...

사실, $ _POST와 (과) 같은 연관 배열에 입력을 유지하지 않으시겠습니까? 예상치 못한 값을 제거하고 싶을 수도 있습니다.

foreach($_POST as $key=>$value) { 
    echo($key.' > '.$value.'<br />'); 
} 
0

내가 여기에 핌 야거의 게시물에 댓글을 추가 할 수는 없지만은 예제 코드입니다. 유지 보수가 훨씬 쉽습니다.

$fields = array("name","email","addr","bla","bla2"); 
$form = array(); 
foreach($fields as $field){ 
    $form[$field] = $_POST[$field]; 
} 

이제 모든 데이터가 $form 안에 있습니다.
폼을 만들 때도 비슷한 작업을 수행 할 수 있습니다. (더 까다 롭긴하지만 ..)

건배!

0

당신이 POST에서 복사 할 필드와 배열을 사용하여 배열에 데이터를 저장 :

0
foreach($_POST as $key=>$value) { 
      ${$key} = $value; 
    } 

그러나 이것은 추출물과 같은 일을()는

관련 문제