#### **何时使用 GET?**
通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。
GET 可用于发送非敏感的数据。
注释:绝不能使用 GET 来发送密码或其他敏感信息!
* * * * *
#### **何时使用 POST?**
通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。
此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。
不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。
* * * * *
#### **如何避免 $_SERVER["PHP_SELF"] 被利用?**
通过使用 htmlspecialchars() 函数能够避免 $_SERVER["PHP_SELF"] 被利用。
表单代码是这样的:
`<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">`
htmlspecialchars() 函数把特殊字符转换为 HTML 实体。现在,如果用户试图利用 PHP_SELF 变量,会导致如下输出:
`<form method="post" action="test_form.php/"><script>alert('hacked')</script>">`
无法利用,没有危害!