PHP에서 post 메소드의 주요 목적은 데이터를 "전달"하는 것입니다. "
추천: "PHP Video Tutorial"
$_POST array
GET 메소드의 원래 의도는 다운로드(상대편은 업로드 메소드 PUT)이므로 특별히 사용되지는 않습니다. 요청한 리소스의 끝에 URL 인코딩을 붙여서 모든 요청 데이터를 전송합니다. 이런 식으로 데이터가 많으면 URL이 매우 길어지지만 이는 문제가 되지 않습니다. 웹 브라우저 또는 서버 프로그램은 이 문자열 줄의 길이를 제한합니다. 이때 POST 방식을 사용해야 합니다.
이름에서 알 수 있듯이 POST 메서드의 주요 목적은 데이터를 "전송"하는 것입니다. 이렇게 하면 데이터를 아무리 많이 업로드해도 문제가 되지 않습니다. (요청 데이터의 크기는 허용되는 웹 서비스 크기에 따라 다릅니다.) 일반적으로 폼 데이터가 특별히 필요하지 않은 경우에는 POST 방식을 사용하여 업로드하므로, 업로드되는 데이터의 구체적인 크기에 신경 쓸 필요는 없습니다.
POST 메소드의 요청 데이터는 $_POST 배열로 캡슐화되며 사용법은 $_GET 배열과 동일합니다. 위 폼에 메소드 속성을 추가하면 다음과 같이 됩니다.
<!– post.php文件 –> <?php if($_POST['post']) { foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”; } ?> <form action=”post.php” method=”post”> <label for=”id”>账号:</label><input type=”text” name=”id”> <label for=”password”>密码:</label><input type=”text” name=”password”> <input type=”submit” name=”post” value=”提交”> </form>
또 다른 흥미로운 설정은 GET 메소드와 POST 메소드가 불일치하지 않는다는 점입니다. GET 변수는 POST 메소드에서도 전달될 수 있으며, 위의 게시물은 다음과 같습니다. .php 파일이 약간 수정되어 다음과 같이 됩니다.
<!– post.php文件 –> <?php if($_POST['post']) { foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”; foreach($_GET as $index = > $value) echo “$_GET[$index] = $value”, “<BR>”; } ?> <form action=”post.php?act=login” method=”post”> <label for=”id”>帐号:</label><input type=”text” name=”id”> <label for=”password”>密码:</label><input type=”text” name=”password”> <input type=”submit” name=”post” value=”提交”> </form>
이 프로그램은 GET 메소드(act 매개변수)와 POST 메소드(id 및 비밀번호 매개변수)의 요청 데이터를 동시에 처리합니다. GET 메소드에는 양식 작업 속성 값이 접미사로 붙습니다. 이것의 유일한 문제점은 GET 메소드의 요청 변수를 사용자가 입력할 수 없다는 것입니다. 일반적으로 고정된 데이터는 GET 방식으로 전송되고, 사용자가 입력한 데이터는 POST 방식으로 전송되는데, 두 가지 방식은 서로 다른 로직으로 데이터를 구분합니다. 그러나 이 양식을 작성할 때 독자는 두 메소드에서 동일한 변수 이름을 사용하지 않도록 주의해야 합니다. 그렇지 않으면 예측할 수 없는 결과가 발생합니다. 마지막으로, GET 메소드를 사용하여 데이터를 전송할 때 쿼리 문자열은