浏览器客户端可以通过两种方式将信息发送到Web服务器。
在浏览器发送信息之前,它使用称为URL编码的方案对其进行编码。在此方案中,name/value对以等号连接,而不同的对之间用&分隔。
name1=value1&name2=value2&name3=value3
空格将被删除并用 + 字符替换,其他任何非字母数字字符都将替换为十六进制值。信息编码后,将其发送到服务器。
GET方法发送附加到页面请求的编码用户信息。页面和编码信息由?字符分隔。
http://www.test.com/index.htm?name1=value1&name2=value2
GET方法只能发送最多1024个字符。
如果您有密码或其他敏感信息要发送到服务器,请不要使用GET方法。
GET不能用于将二进制数据(如图像或Word文档)发送到服务器。
可以使用QUERY_STRING环境变量访问GET方法发送的数据。
PHP提供了 $_GET 关联数组,以使用GET方法访问所有已发送的信息。
通过将源代码放入test.php脚本中来尝试以下示例。
<?php if( $_GET["name"] || $_GET["age"] ) { echo "Welcome ". $_GET['name']. "<br />"; echo "You are ". $_GET['age']. " years old."; exit(); } ?> <html> <body> <form action="<?php $_PHP_SELF ?>" method="GET"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
它将产生以下输出-
POST方法通过HTTP标头传输信息。该信息按照GET方法的说明进行编码,然后放入称为QUERY_STRING的标头中。
POST方法对要发送的数据大小没有任何限制。
POST方法可用于发送ASCII以及二进制数据。
POST方法发送的数据通过HTTP标头传递,因此安全性取决于HTTP协议。
PHP提供了 $_ POST 关联数组,以使用POST方法访问所有已发送的信息。
通过将源代码放入test.php脚本中来尝试以下示例。
<?php if( $_POST["name"] || $_POST["age"] ) { if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) { die ("invalid name and name should be alpha"); } echo "Welcome ". $_POST['name']. "<br />"; echo "You are ". $_POST['age']. " years old."; exit(); } ?> <html> <body> <form action="<?php $_PHP_SELF ?>" method="POST"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
它将产生以下输出-
PHP $_REQUEST变量包含$_GET,$_ POST和$_COOKIE的内容。可用于从通过GET和POST方法发送的表单数据中获取输出。
通过将源代码放入test.php脚本中来尝试以下示例。
<?php if( $_REQUEST["name"] || $_REQUEST["age"] ) { echo "Welcome ". $_REQUEST['name']. "<br />"; echo "You are ". $_REQUEST['age']. " years old."; exit(); } ?> <html> <body> <form action="<?php $_PHP_SELF ?>" method="POST"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
$_PHP_SELF变量包含在其中调用自脚本的名称。
它将产生以下输出-
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)