저번 글에서 "PHP 폼 학습시 폼에 포함된 이메일과 URL은 어떻게 확인하나요?"를 가져왔습니다. 》에서는 PHP에서 이메일과 URL을 양식에서 확인하는 방법에 대한 지식을 자세히 소개합니다. 이번 글에서는 PHP의 $_GET 변수와 $_POST 변수에 대해 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다!
이전 기사에서는 필수 데이터의 유효성을 검사하는 방법과 정규식을 통해 양식의 이메일과 URL의 유효성을 검사하는 방법을 배웠습니다. 그 중에는 $_GET
변수와 $_POST
변수가 있습니다. 다음으로 $_GET
변수와 $를 살펴보겠습니다. _POST
변수 사용 관련 지식. $_GET
变量与$_POST
变量的影子,接下来我们就来看一看$_GET
变量与$_POST
变量使用的相关知识。
<span style="font-size: 20px;">PHP $_GET </span>
变量
我们前面在学习的时候已经了解到了 $_GET
变量用于收集来自 method="get"
的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。其实也可以看成是通过 URL 参数传递给当前脚本的变量的数组。
在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
接下来我们通过示例来看一下:
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="demo.php" method="get"> 名字: <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>
提交到demo.php的内容为:
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_GET['name'] ."<br/>"; echo "你的性别是:" .$_GET['sex']."<br/>"; echo "你的年龄是:".$_GET['age']; ?>
输出结果:
我们发现我们在表单填写的值,都显示在Url栏中。那么我们在什么时候使用 method="get"呢。
在 HTML 表单中使用 method="get"
时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法!然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
其中需要注意的是:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
<strong><span style="font-size: 20px;">$_POST</span></strong>
变量
在上述示例中我们讲到了$_GET
变量,接下来我们就来看一下$_POST
变量,预定义的 $_POST
变量用于收集来自 method="post"
的表单中的值。
从带有 POST 方法的表单发送的信息,对任何人都是不可见的也不会像$_GET
变量一样显示在浏览器的地址栏,并且对发送信息的量也没有限制。然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB,可以通过设置 php.ini
文件中的 post_max_size
进行更改。
接下来我们通过示例来看一下:
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="demo.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>
其中提交到demo.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的区别。
<strong><span style="font-size: 20px;">$_GET</span></strong>
与$_POST
的区别
get
是从服务器上获取数据,post
<span style="font-size: 20px;">PHP $_GET </span>
변수 우리는 $_GET
변수가 method="get"
형식에서 값을 수집하는 데 사용된다는 것을 이전에 배웠습니다. GET 메소드를 사용하여 양식에서 전송된 정보는 모든 사람이 볼 수 있으며(브라우저의 주소 표시줄에 표시됨) 전송되는 정보의 양에는 제한이 있습니다. 실제로 이는 URL 매개변수를 통해 현재 스크립트에 전달되는 변수 배열로 볼 수도 있습니다. $_GET 변수를 사용하면 모든 변수 이름과 값이 URL에 표시됩니다. 따라서 비밀번호나 기타 민감한 정보를 보낼 때는 이 방법을 사용해서는 안 됩니다. 그러나 변수가 URL에 나타나므로 해당 페이지를 북마크에 추가할 수 있습니다. 어떤 경우에는 이것이 유용합니다. 다음으로 예를 살펴보겠습니다. rrreee
demo.php에 제출된 콘텐츠는 다음과 같습니다.rrreee
출력 결과:method="get"
을 사용하면 모든 변수 이름과 값이 URL에 표시됩니다. 따라서 비밀번호나 기타 민감한 정보를 보낼 때 이 방법을 사용해서는 안 됩니다! 그러나 변수가 URL에 나타나므로 해당 페이지를 북마크에 추가할 수 있습니다. 어떤 경우에는 이것이 유용합니다. 🎜🎜HTTP GET 방식은 큰 변수 값에는 적합하지 않다는 점에 유의해야 합니다. 해당 값은 2000자를 초과할 수 없습니다. 🎜🎜<strong><span style="max-width:90%">$_POST</span></strong>
변수🎜🎜위의 예에서 $_GET
변수에 대해 이야기했습니다. 미리 정의된 $_POST
변수를 살펴보겠습니다. $_POST
변수는 method="post"
의 양식에서 값을 수집하는 데 사용됩니다. 🎜🎜POST 메소드로 폼에서 전송된 정보는 누구에게도 보이지 않으며 $_GET
변수와 같이 브라우저의 주소 표시줄에 표시되지 않으며 전송되는 정보의 양에 영향을 미치지 않습니다. . 또한 제한도 없습니다. 그러나 기본적으로 POST 메소드로 전송되는 최대 정보량은 8MB이며 php.ini
파일에서 post_max_size
를 설정하여 변경할 수 있습니다. 🎜🎜다음으로 예를 살펴보겠습니다.<strong><span style="max-width:90%">$_GET</span></strong>
$_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입니다. 🎜🎜 겟 보안은 매우 낮고, 포스트 보안은 높습니다. 하지만 실행 효율성은 Post 방식보다 좋습니다. 🎜🎜두 가지의 차이점을 표로 정리하면 다음과 같습니다. 🎜$_GET | $_POST | |
---|---|---|
URL에 표시 | URL에 표시되는 문자 수에는 제한이 있습니다. |
URL에는 표시되지 않습니다 |
제출된 데이터 용량 측면에서 | 는 일반적으로 2k 미만의 소량 데이터입니다. | PHP는 기본적으로 8M의 대용량 데이터를 제출할 수 있습니다. |
보안 측면에서 | 은 안전하지 않습니다. | 은 상대적으로 안전합니다. |
제출 원칙 | 격리되어 있습니다 | 데이터를 전체적으로 제출하세요 |
유연성 | 매우 유연합니다. 페이지 이동으로 데이터를 전송할 수 있습니다. | 유연하지 않으며 양식에 반드시 참여해야 합니다 |
Common use | More Commonly Used | 는 $_GET |
보다 덜 일반적입니다. 차이점을 통해 다음과 같이 결론을 내릴 수 있습니다.
get 메소드의 보안은 Post 메소드보다 나쁩니다. 정보가 포함되어 있으면 Post 데이터 제출 방법을 사용하는 것이 좋습니다.
데이터 쿼리를 수행할 때는 Get 메서드를 사용하는 것이 좋으며, 데이터 추가, 수정 또는 삭제를 수행할 때는 Post 메서드를 사용하는 것이 좋습니다. ;
관심이 있으시면 "PHP 비디오 튜토리얼"을 클릭하여 PHP에 대해 자세히 알아보세요.
위 내용은 PHP 양식 학습: $_GET 및 $_POST 변수의 사용 및 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!