PHP $_POST 변수
위 섹션에서는 $_GET 변수에 대해 이야기했으므로 이번 섹션에서는 method="post"를 사용하여 양식의 값을 수집하는 $_POST 변수에 대해 알아봅니다.
$_POST 변수
미리 정의된 $_POST 변수는 method="post"를 사용하여 양식에서 값을 수집하는 데 사용됩니다.
POST 메소드를 사용하여 양식에서 전송된 메시지는 누구에게도 보이지 않으며(브라우저의 주소 표시줄에 표시되지 않음) 전송되는 정보의 양에는 제한이 없습니다.
참고: 그러나 기본적으로 POST 메서드로 전송되는 최대 정보량은 8MB입니다(php.ini 파일에서 post_max_size를 설정하여 변경할 수 있음).
이제 예문으로 살펴보겠습니다
예문
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="php_post.php" method="post"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>
php_post.php 페이지에 제출됨
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_POST['name'] ."<br/>"; echo "你的性别是:" .$_POST['sex']."<br/>"; echo "你的年龄是:".$_POST['age']; ?>
프로그램 실행 결과:
알겠습니다. POST를 사용하여 제출한 정보는 Url 열에 표시되지 않으므로 이제 POST가 GET
<보다 안전하다는 것을 알 수 있습니다. 🎜>GET과 POST의 차이점:
- get은 서버에서 데이터를 얻는 것이고, post는 서버로 데이터를 전송하는 것입니다.
get은 제출된 양식의 ACTION 속성이 가리키는 URL에 매개변수 데이터 대기열을 추가합니다. 값은 다음에서 볼 수 있는 양식의 각 필드에 해당합니다. URL. Post는 HTTP 게시 메커니즘을 사용하여 양식의 각 필드와 해당 콘텐츠를 HTML HEADER에 배치하고 이를 ACTION 속성이 가리키는 URL 주소로 전송합니다. 사용자는 이 프로세스를 볼 수 없습니다.
- 서버측에서는 get 메소드의 경우 Request.QueryString을 사용하여 변수의 값을 가져옵니다. post 메소드의 경우 서버측에서는 Request.Form을 사용하여 변수 값을 가져옵니다. 제출된 데이터.
- get으로 전송되는 데이터의 양은 적으며 2KB를 초과할 수 없습니다. 우편으로 전송되는 데이터의 양은 상대적으로 크며 일반적으로 기본적으로 제한이 없습니다. 그러나 이론상 최대 용량은 IIS4에서는 80KB, IIS5에서는 100KB입니다.
- get 보안은 매우 낮고 사후 보안은 높습니다. 하지만 실행 효율성은 Post 방식보다 좋습니다.
제안: 1. For를 포함하여 get 메소드는 post 메소드보다 덜 안전합니다. 기밀 정보인 경우에는 Post 데이터 제출 방식을 사용하는 것이 좋습니다.
2. 데이터 쿼리 시 데이터 추가, 수정, 삭제 시에는 Get 메서드를 사용하는 것이 좋습니다. Post 방법을 사용하는 것이 좋습니다.
PHP $_REQUEST 변수
미리 정의된 $_REQUEST 변수에는 $_GET, $_POST 및 $_COOKIE의 내용입니다.
$_REQUEST 변수는 GET 및 POST 메소드를 통해 전송된 양식 데이터를 수집하는 데 사용할 수 있습니다.
위 php 파일을 수정해서 살펴보세요
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_REQUEST['name'] ."<br/>"; echo "你的性别是:" .$_REQUEST['sex']."<br/>"; echo "你的年龄是:".$_REQUEST['age']; ?>
$_POST로 제출하든 $_GET로 제출하든 $_REQUEST로 수신할 수 있습니다