相关文章推荐
曾经爱过的西装  ·  史上最全!Excel ...·  1 年前    · 
爱运动的乌龙茶  ·  SQL Server JDBC Error ...·  1 年前    · 
爱喝酒的楼房  ·  (转载)Javascript ...·  2 年前    · 

PHP 超全局变量 $_GET $_POST 用于收集表单数据(form-data)。

  • $_GET 是通过 URL 参数传递到当前脚本的变量数组。
  • $_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

有一点很重要的事情值得注意,当处理 HTML 表单时,PHP 能把来自 HTML 页面中的表单元素自动变成可供 PHP 脚本使用。

  • $_GET 变量

预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。

从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。

例:form.html 文件代码

< form action ="welcome.php" method ="get" > 名字: < input type ="text" name ="fname" > 年龄: < input type ="text" name ="age" > < input type ="submit" value ="提交" > </ form > </ body > </ html >

当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示: http://www.runoob.com/welcome.php?fname=Runoob &amp; age=3

"welcome.php" 文件现在可以通过 $_GET 变量来收集表单数据了(请注意,表单域的 名称 自动成为 $_GET 数组中的键 ):

欢迎 <?php echo $_GET["fname"]; ?>!<br>
你的年龄是 <?php echo $_GET["age"]; ?>  岁。
  • 何时使用 method="get"?

    在 HTML 表单中使用 method="get" 时,所有的 变量名和值都会显示在 URL 中。

    注释: 所以在发送密码或其他敏感信息时,不应该使用这个方法! 不安全

    然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

    注释: HTTP GET 方法 不适合大型的变量值 。它的值是 不能超过 2000 个字符的。

  • $_POST 变量

预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。

从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

注释: 然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。

例: form.html 文件代码

< form action ="welcome.php" method ="post" > 名字: < input type ="text" name ="fname" > 年龄: < input type ="text" name ="age" > < input type ="submit" value ="提交" > </ form > </ body > </ html >

当用户点击 "提交" 按钮时,URL 类似如下所示: http://www.runoob.com/welcome.php

"welcome.php" 文件现在可以通过 $_POST 变量来收集表单数据了(请注意,表单域的名称会自动成为 $_POST 数组中的键):

欢迎 <?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?>  岁。
  • 何时使用 POST?

通过 POST 方法从表单发送的信息对 其他人是不可见 的( 安全 )(所有名称/值会被 嵌入 HTTP 请求的主体 中),并且对所发送信息的 数量也无限制

此外 POST 支持 高阶功能 ,比如在向服务器上传文件时进行 multi-part 二进制输入。

不过,由于变 量未显示在 URL 中,也就 无法将页面添加到书签

大多数开发者偏爱 POST 来发送表单数据。

  • 通过 PHP 验证表单数据

我们要做的第一件事是通过 PHP 的 htmlspecialchars() 函数传递所有变量。

在我们使用 htmlspecialchars() 函数后,如果用户试图在文本字段中提交以下内容:

<script>location.href('http://www.hacked.com')</script>

- 代码不会执行,因为会被保存为转义代码,就像这样:

&lt;script&gt;location.href('http://www.hacked.com')&lt;/script&gt;

现在这条代码显示在页面上或 e-mail 中是安全的。

在用户提交该表单时,我们还要做两件事:

  1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
  2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)

接下来我们创建一个检查函数(相比一遍遍地写代码,这样效率更好)。

我们把函数命名为 test_input()。

现在,我们能够通过 test_input() 函数检查每个 $_POST 变量,脚本是这样的:

$name = $email = $gender = $comment = $website = "" ; if ( $_SERVER ["REQUEST_METHOD"] == "POST" ) { $name = test_input( $_POST ["name" ]); $email = test_input( $_POST ["email" ]); $website = test_input( $_POST ["website" ]); $comment = test_input( $_POST ["comment" ]); $gender = test_input( $_POST ["gender" ]); function test_input( $data ) { $data = trim ( $data ); $data = stripslashes ( $data ); $data = htmlspecialchars ( $data ); return $data ; 最近做项目,后台已经做好了但是前台的模版还没下来,所以测试比较麻烦。于是写了个简单的脚本通过curl的 方式 模拟 表单 提交 。可以通过数组和字符串两种 方式 提交 数据。 复制代码 代码如下:<? php /** * Class SimulantForm 模拟 表单 */class SimulantForm {    /**     * @var 要 提交 的页面url     */    protected $_url;     /**     * @var resource curl_init()返回的curl句柄     */    protected $_ch;     /**     * 初始化一个 表单 PHP 过滤 提交 表单 的html代码里可能有被利用引入外部危险内容的代码。例如,有些时候用户 提交 表单 中含有html内容,但这可能造成显示页面布局混乱,需要过滤掉。 复制代码 代码如下: //get post data  function Post Get($str,$ post =0)   empty($str)?die(‘para is null’.$str.’!’):”;   if( $ post )    if( get_magic_quotes_gpc() )     return htmlspecialchars(isset($_ POST [$str])? php 可以单独创建 . php 文件,也可以在 HTML 中添加 php 标记后进行书写.若不显示汉字,需在标记内不添加: header("Content-type:text/html;charset=utf-8");一. PHP 的标记或者声明后便可以在其中编写 php 代码 php 还有其他标记 方式 , 不作了解.二. php 注释注释 方式 与 JS 类似.三. 变量 与 常量1. 变量 ... 通常情况下用户使用浏览器网页 表单 向服务器 post 提交 数据,我们使用 PHP 的$_ POST 接收用户 POST 到服务器的数据,并进行适当的处理。但有些情况下,如用户使用客户端软件向服务端 php 程序发送 post 数据,而不能用$_ POST 来识别,那又该如何处理呢?我们介绍 php 接受 post 数据的三种 方式 :1.$_ POST 方式 接收数据$_ POST 方式 是通过 HTTP POST 方法传递的变量组成的数组,是自动全... PHP 表单 提交 有两种 方式 ,分别是:1、GET 方式 ,GET 提交 方式 在地址上可以看到参数,不安全, 提交 的数据一般不超过255个字节;2、 POST 方式 POST 提交 方式 在地址栏上看不到参数,安全, 提交 数据的大小取决于服务器。 PHP 表单 提交 有两种 方式 :GET 方式 POST 方式 PHP 后台使用全局变量$_ POST ;和$_GET;来获取 提交 的数据。代码:简单 表单 提交 姓名 邮箱 GET POST 表单 提交 $nam... 浏览器客户端可以通过两种 方式 将信息发送到Web服务器。GET方法 POST 方法在浏览器发送信息之前,它使用称为URL编码的方案对其进行编码。在这个方案中,名称/值对用等号连接,不同的对用&号分开。如下 –name=maxsu&key=value&key2=value2空格将被删除并使用+字符替换,其他非字母数字字符被替换为十六进制值。信息编码后,发送到服务器。1. GET方法... 关于 PHP 上传文件的函数类库,网上有许多封装很完善,建议大家直接拿来用就可以。本文章只是说下关于上传原理和简单的上传操作,老鸟就无视了哈^_^~上传文件分为两个部分,HTML显示部分和 PHP 处理部分,HTML部分主要是让用户来选择所要上传的文件,然后通过 PHP 中的$_FILES,我们可以把文件上传到服务器的指定目录。还有一些安全性判断,比如:服务端限制只能接收图片类型的文件,而防止客户端将病毒文件... 我们一般通过 submit 提交 表单 时,会在乎在 表单 中填写的一大堆数据是否 提交 到后台。这里就需要做个判断,使用 php 代码来判断 表单 数据是否被 提交 一般采用如下的形式:大理石平台保养12345if(isset($_ POST ['submit'])) {echo " 数据被 提交 过来了";}?>说明:isset -- 检测变量是否设置 ,返回值有如下的几种形式。若变量不存在则返回 FALSE若变量存在... * 模拟 表单 提交 * @param $url 字符串/必填 例子:https://xxxxx/singleQueryRequest.do * @param $data array/必填 * @return 字符串 function post Curl($url,$data) $headers = array('Content-Type: applicat... 什么是 PHP ? PHP ,一个嵌套的缩写名称,是英文超级文本预处理语( PHP :Hypertext Preprocessor)的缩写。 PHP 是一种 HTML 内嵌式的语言, PHP 与微软的ASP颇有几分相似,都...