PHP表单

表单是Web应用程序与用户交互的主要方式。在本章节中,您将学习如何创建HTML表单并在PHP中处理表单数据。

PHP表单基础

PHP可以处理来自HTML表单的数据,包括文本字段、单选按钮、复选框、下拉列表等各种表单元素。表单数据可以通过GET或POST方法提交到服务器,然后PHP脚本可以处理这些数据。

HTML表单结构

一个基本的HTML表单包含以下元素:

<form action="process.php" method="post">
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name">
    
    <label for="email">邮箱:</label>
    <input type="email" id="email" name="email">
    
    <input type="submit" value="提交">
</form>

表单提交方法

HTML表单可以使用两种主要的提交方法:

  • GET方法:表单数据附加在URL后面,以问号(?)开始,参数之间用&分隔。GET方法适用于不敏感的、简短的数据,并且有大小限制。
  • POST方法:表单数据作为HTTP请求的一部分发送,不会显示在URL中。POST方法适用于敏感数据或大量数据,没有GET方法那样的大小限制。

PHP处理表单数据

PHP通过超全局变量来访问表单数据:

  • $_GET:包含通过GET方法提交的所有数据
  • $_POST:包含通过POST方法提交的所有数据
  • $_REQUEST:包含通过GET、POST和Cookie提交的所有数据

GET方法示例

以下是一个使用GET方法提交表单的示例:

<!-- HTML表单 -->
<form action="welcome.php" method="get">
    姓名:<input type="text" name="name">
    年龄:<input type="number" name="age">
    <input type="submit">
</form>

处理GET方法提交的表单数据:

<?php
// welcome.php
$name = $_GET["name"];
$age = $_GET["age"];
echo "欢迎 ".$name."!
"; echo "您的年龄是 ".$age." 岁。"; ?>

POST方法示例

以下是一个使用POST方法提交表单的示例:

<!-- HTML表单 -->
<form action="welcome.php" method="post">
    姓名:<input type="text" name="name">
    年龄:<input type="number" name="age">
    <input type="submit">
</form>

处理POST方法提交的表单数据:

<?php
// welcome.php
$name = $_POST["name"];
$age = $_POST["age"];
echo "欢迎 ".$name."!
"; echo "您的年龄是 ".$age." 岁。"; ?>

表单安全

处理表单数据时,安全性非常重要。以下是一些基本的安全实践:

  • 始终验证和清理用户输入的数据
  • 使用预处理语句来防止SQL注入
  • 对于显示的数据,使用htmlspecialchars()函数进行转义
  • 对敏感数据使用适当的加密方法

提示:在实际应用中,我们通常会使用POST方法来提交包含敏感信息的表单,如登录表单、注册表单等。GET方法适用于搜索表单或需要可以被书签保存的结果页面。