PHP 表单处理

2025 年 4 月 17 日 | 6 分钟阅读

PHP Web 应用程序在很大程度上依赖于 HTML 表单。完全由 HTML 组成的网站是静态的;然而,HTML 表单组件是添加交互和显示动态信息的有用工具。PHP 中的表单处理功能可以在处理用户提供的数据之前对其进行验证。

什么是表单处理?

一个 HTML 表单是一系列不同的表单控件的集合,例如文本字段、复选框、单选按钮等,这些控件允许用户进行交互、输入或选择特定数据。这些数据可以通过 JavaScript 在本地处理(客户端处理),也可以通过 PHP 等服务器端编程脚本发送到远程服务器进行处理。

HTML表单

<form> 和 </form> 标签包含一个或多个表单控件元素。Name、action 和 method 是定义表单元素的属性。

语法

在 HTML 表单元素的众多属性中,以下属性通常是必需的并被指定:

操作

一个字符串,表示处理表单提交的 URL。例如,使用 http://example.com/test.php。使用 PHP_SELF 服务器变量——将表单数据提交给定义 HTML 表单的同一个 PHP 脚本。

Enctype

Enctype 属性指示在传输到服务器之前如何对表单数据进行编码。可能的值包括:

  • application/x-www-form-urlencoded - 初始值。
  • multipart/form-data - 如果表单包含 type=file 的 <input> 元素,请使用此项。
  • text/plain - 适用于故障排除。

方法

Method 属性是一个字符串,指定用于提交表单的 HTTP 方法。Method 属性的可能值如下:

  • post - POST 方法;表单提交的数据位于请求正文中。
  • get (默认) - GET 方法将表单数据附加到 action URL,并通过“?”分隔。当表单没有负面影响时,使用此策略。
  • dialog - 在表单位于 <dialog> 中且不清除表单或发送数据的情况下,关闭对话框并触发提交事件。

名称

表单的名称。如果单个 HTML 页面中有多个表单,则该值必须唯一且不能为空字符串。

目标

表单提交后,Target 属性是一个字符串,指定响应应该显示在哪里。应为以下之一:

  • _self (默认) - 加载时使用当前浏览上下文。
  • _blank - 进入一个新的、匿名的浏览环境。
  • _parent - 进入当前浏览上下文的父级。
  • _top - _top 命令加载当前浏览上下文的顶级浏览上下文,该上下文是当前浏览上下文的祖先且没有父级。

因此,PHP Web 应用程序中的标准 HTML 表单如下所示:

表单元素

HTML 表单的设计使用了各种控件和组件。这些控件允许用户输入数据或从显示的选项中进行选择。这里解释了其中一些元素。

输入

input 元素代表一个数据字段,允许用户输入和/或修改数据。INPUT 元素的 type 属性控制数据。以下是可能的输入元素类型:

Text: 一个文本框,可以在其中输入单行文本。

语法

Password: 一个单行文本字段,可以隐藏输入的字符。

语法

Radio: 此类型创建一个可点击的圆形按钮,该按钮可以处于 ON 或 OFF 状态。它通常是按钮单选组的组成部分。

示例

Checkbox: 一个矩形可勾选框,代表从预定列表中选择零个或多个值。

示例

File: input 类型允许用户从客户端文件系统中选择一个文件,通常是要上传到服务器的文件,并生成一个带有标题的按钮。表单上必须指定“multipart/form-data”enctype 属性。

语法

选择

choose 元素代表用于从一系列选项中进行选择的控件。Select 控件的 option 属性定义了每个选项。例如:

示例

我们可以在 PHP 中创建和使用表单。要获取表单数据,我们需要使用 PHP 超全局变量 $_GET 和 $_POST。

表单请求可以是 get 或 post。要从 get 请求中检索数据,我们需要使用 $_GET,对于 post 请求,则使用 $_POST。

PHP GET 表单

Get 请求是默认的表单请求。通过 get 请求传递的数据在浏览器 URL 中可见,因此不安全。您可以通过 get 请求发送有限数量的数据。

让我们来看一个在 PHP 中接收来自 get 请求数据的简单示例。

HTML 代码

PHP 代码

输出

php form php form

PHP POST 表单

Post 请求广泛用于提交包含大量数据的表单,例如 文件上传、图像上传、登录表单注册表单 等。

通过 post 请求传递的数据在浏览器 URL 中不可见,因此是安全的。您可以发送大量数据通过 post 请求。

让我们来看一个在 PHP 中接收来自 post 请求数据的简单示例。

HTML 代码

PHP 代码

输出

php form php login form handling

示例

让我们使用这些表单组件创建一个 HTML 表单,并将其提交到 PHP_SELF 脚本。

当您填写表单并单击“提交”按钮时,PHP 将接管以获取您输入的数据。为了检索姓名、电子邮件、网站、评论和性别等字段的信息,它会使用一种称为 $_POST 的机制。PHP 使用 htmlspecialchars() 方法来帮助阻止任何潜在的危险代码,以确保安全。PHP 在处理完所有内容后,会在页面上直接显示您提交的数据。

代码

输出

php form

说明

此 PHP 表单显示用户输入的信息。为了保护数据隐私,表单使用“POST”方法来获取完整的姓名、电子邮件、网站 URL、反馈和性别。`htmlspecialchars($_SERVER["PHP_SELF"])` 函数用于将表单安全地提交到同一页面。

PHP 脚本通过“$_POST”超全局变量获取输入值并将其保存在 变量中,并在提交表单时验证请求方法是否为“POST”。之后,这些值将在网站上动态显示。


下一主题PHP Include File