PHP 表单学习笔记

一、表单基础知识

1.1 什么是表单

表单(Form)是一种在 Web 页面中用于收集用户输入信息的 HTML 元素。

1.2 表单元素

常见的表单元素有:

  • <input>:用于输入框、单选框、复选框等。
  • <select>:用于下拉菜单。
  • <textarea>:用于多行文本输入。
  • <button>:用于按钮。

1.3 表单提交

当用户填写完表单后,可以通过表单提交将用户输入信息发送到服务器。表单提交有两种方式:

  • GET 方法:将表单数据附加在 URL 后,发送给服务器。
  • POST 方法:将表单数据放在 HTTP 请求主体中,发送给服务器。

二、PHP 处理表单

2.1 接收表单数据

PHP 可以通过 $_GET 和 $_POST 超全局变量接收表单提交的数据。

  • $_GET:用于接收 GET 方法提交的数据。
  • $_POST:用于接收 POST 方法提交的数据。

示例代码:

Copy Code
<form method="POST" action="submit.php"> <label>Username:</label> <input type="text" name="username"> <br> <label>Password:</label> <input type="password" name="password"> <br> <button type="submit">Submit</button> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $password = $_POST["password"]; echo "Username: " . $username . "<br>"; echo "Password: " . $password . "<br>"; } ?>

2.2 表单验证

表单数据需要进行验证,以确保数据的合法性和安全性。常见的表单验证方式有:

  • 空值验证:确保用户输入的内容不为空。
  • 数据类型验证:确保用户输入的数据类型正确。
  • 正则表达式验证:确保用户输入的数据符合特定的格式要求。
  • 安全性验证:确保用户输入的数据安全。

示例代码:

Copy Code
<form method="POST" action="submit.php"> <label>Username:</label> <input type="text" name="username" required> <br> <label>Password:</label> <input type="password" name="password" required> <br> <button type="submit">Submit</button> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $password = $_POST["password"]; // 空值验证 if (empty($username) || empty($password)) { echo "Please fill in all fields."; return; } // 安全性验证 if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) { echo "Username contains illegal characters."; return; } echo "Username: " . $username . "<br>"; echo "Password: " . $password . "<br>"; } ?>

三、示例

以下是一个简单的登录表单示例:

Copy Code
<form method="POST" action="login.php"> <label>Username:</label> <input type="text" name="username" required> <br> <label>Password:</label> <input type="password" name="password" required> <br> <button type="submit">Login</button> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $password = $_POST["password"]; // 空值验证 if (empty($username) || empty($password)) { echo "Please fill in all fields."; return; } // 安全性验证 if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) { echo "Username contains illegal characters."; return; } // 模拟用户验证 if ($username == "admin" && $password == "123456") { echo "Login success!"; } else { echo "Wrong username or password."; } } ?>

该示例展示了如何通过 PHP 处理表单提交,进行表单验证和模拟用户验证。