게시물과 함께 보낸 모든 변수를 삽입해야합니다. 각 변수는 사용자를 나타내는 확인란이었습니다.
GET을 사용하면 다음과 같은 결과가 나타납니다.
?19=on&25=on&30=on
데이터베이스에 변수를 삽입해야합니다.
POST로 모든 변수를 보내려면 어떻게해야합니까? 쉼표 또는 무언가로 구분 된 배열 또는 값으로?
게시물과 함께 보낸 모든 변수를 삽입해야합니다. 각 변수는 사용자를 나타내는 확인란이었습니다.
GET을 사용하면 다음과 같은 결과가 나타납니다.
?19=on&25=on&30=on
데이터베이스에 변수를 삽입해야합니다.
POST로 모든 변수를 보내려면 어떻게해야합니까? 쉼표 또는 무언가로 구분 된 배열 또는 값으로?
답변:
변수 $_POST
가 자동으로 채워집니다.
var_dump($_POST);
내용을 보십시오 .
다음과 같은 개별 값에 액세스 할 수 있습니다. echo $_POST["name"];
물론 이것은 귀하의 양식이 일반적인 양식 인코딩 (예 : enctype=”multipart/form-data”
게시물 데이터가 다른 형식 (예 : JSON 또는 XML) 인 경우 다음과 같이 할 수 있습니다.
$post = file_get_contents('php://input');
및 $post
원시 데이터가 포함됩니다.
표준 $_POST
변수를 사용한다고 가정하면 다음 과 같이 확인란이 선택되어 있는지 테스트 할 수 있습니다.
if(isset($_POST['myCheckbox']) && $_POST['myCheckbox'] == 'Yes')
{
...
}
체크 박스 배열이있는 경우 (예 :
<form action="myscript.php" method="post">
<input type="checkbox" name="myCheckbox[]" value="A" />val1<br />
<input type="checkbox" name="myCheckbox[]" value="B" />val2<br />
<input type="checkbox" name="myCheckbox[]" value="C" />val3<br />
<input type="checkbox" name="myCheckbox[]" value="D" />val4<br />
<input type="checkbox" name="myCheckbox[]" value="E" />val5
<input type="submit" name="Submit" value="Submit" />
</form>
[ ]
확인란 이름에를 사용 하면 선택한 값이 PHP 스크립트에서 배열로 액세스됨을 나타냅니다. 이 경우 $_POST['myCheckbox']
단일 문자열을 반환하지 않지만 선택된 확인란의 모든 값으로 구성된 배열을 반환합니다.
예를 들어, 모든 상자를 선택하면 다음 $_POST['myCheckbox']
으로 구성된 배열이 {A, B, C, D, E}
됩니다. 다음은 값 배열을 검색하고 표시하는 방법의 예입니다.
$myboxes = $_POST['myCheckbox'];
if(empty($myboxes))
{
echo("You didn't select any boxes.");
}
else
{
$i = count($myboxes);
echo("You selected $i box(es): <br>");
for($j = 0; $j < $i; $j++)
{
echo $myboxes[$j] . "<br>";
}
}
더 이상 사용되지 않으며 superglobals에 직접 액세스하고 싶지 않습니다 (내가 생각하는 PHP 5.5 이후?)
모든 최신 IDE는 다음을 알려줍니다.
수퍼 글로벌에 직접 액세스하지 마십시오. (예 : 일부 필터 기능을 사용
filter_input
)
우리 솔루션의 경우 모든 요청 매개 변수를 얻으려면 메서드를 사용해야합니다. filter_input_array
입력 방법에서 모든 매개 변수를 얻으려면 다음을 사용하십시오.
$myGetArgs = filter_input_array(INPUT_GET);
$myPostArgs = filter_input_array(INPUT_POST);
$myServerArgs = filter_input_array(INPUT_SERVER);
$myCookieArgs = filter_input_array(INPUT_COOKIE);
...
이제 당신은 그것을 var_dump
또는 당신의 foreach
-Loops 에서 사용할 수 있습니다.
작동하지 않는 것은이 방법으로 $ _REQUEST 수퍼 글로벌에 액세스하는 것입니다. 그것은 항상 돌아 NULL
오고 맞습니다.
모든 입력 매개 변수를 가져와야하는 경우 다른 메서드를 통해 전달하려면 다음 메서드와 같이 병합하면됩니다.
function askForPostAndGetParams(){
return array_merge (
filter_input_array(INPUT_POST),
filter_input_array(INPUT_GET)
);
}
편집 :이 메서드의 확장 버전 (요청 메서드 중 하나가 설정되지 않은 경우에도 작동) :
function askForRequestedArguments(){
$getArray = ($tmp = filter_input_array(INPUT_GET)) ? $tmp : Array();
$postArray = ($tmp = filter_input_array(INPUT_POST)) ? $tmp : Array();
$allRequests = array_merge($getArray, $postArray);
return $allRequests;
}
이건 왜 안돼요?
extract($_POST);
이 u를 사용하면 모든 포스트 변수를 얻을 수 있습니다.
print_r($_POST)