0Pricing
PHP Academy · 课时

表单验证

验证用户输入,确保安全性和正确性

表单验证 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 3 节课。

验证和保护表单输入

验证和保护表单输入

欢迎来到下一课!在本课中,您将学习如何验证和保护用户输入,以确保表单数据准确,并防范恶意攻击。让我们开始吧!

表单验证 — 插图 1

为什么要验证和保护输入?

为什么要验证和保护输入?

验证和保护表单输入对于以下方面至关重要:

  • 确保数据的准确性和可用性。
  • 防范结构化查询语言注入和 XSS 攻击等安全威胁。

要点:在处理或存储用户输入之前,务必对其进行验证和清理。

验证输入

验证输入

使用 PHP 的内置函数验证常见输入:

  • filter_var():验证电子邮箱、网址和整数。
  • preg_match():根据正则表达式验证输入。

示例:验证电子邮箱地址:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = $_POST["email"];
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo "Valid email: $email";
    } else {
      echo "Invalid email address.";
    }
  }
?>

清理输入

清理输入

清理输入以移除不需要的字符或有害代码。示例:

提示:针对不同类型的数据,使用带有适当过滤器的 filter_var()。

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
    echo "Sanitized Name: $name";
  }
?>

防止跨站脚本攻击(XSS)

防止跨站脚本攻击(XSS)

转义特殊字符,以防止 XSS 攻击。请使用:

  • htmlspecialchars():将特殊字符转换为 HTML 实体。

示例:

提示:在浏览器中显示用户输入之前,务必对其进行转义。

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $comment = htmlspecialchars($_POST["comment"]);
    echo "Comment: $comment";
  }
?>

防止结构化查询语言注入

防止结构化查询语言注入

当恶意代码被插入结构化查询语言查询语句时,就会发生结构化查询语言注入。请使用预处理语句来防止此类攻击。示例:

要点:与数据库交互时,务必使用预处理语句。

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
  $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
  $stmt->execute(["username" => $_POST["username"]]);
  $user = $stmt->fetch();
?>

常见验证模式

常见验证模式

以下是一些常见模式:

  • 验证电话号码:preg_match('/^\d{10}$/', $phone)
  • 验证密码:检查长度和复杂度。

示例:验证强密码:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];
    if (strlen($password) >= 8 && preg_match('/[A-Z]/', $password)) {
      echo "Strong password!";
    } else {
      echo "Password must be at least 8 characters long and include an uppercase letter.";
    }
  }
?>

保护文件上传

保护文件上传

对于处理文件上传的表单:

  • 检查文件类型和大小。
  • 将文件存储在网站根目录之外的安全目录中。

示例:

<?php
  if ($_FILES["file"]["size"] < 500000 && in_array($_FILES["file"]["type"], ["image/jpeg", "image/png"])) {
    move_uploaded_file($_FILES["file"]["tmp_name"], "/secure/location/" . $_FILES["file"]["name"]);
    echo "File uploaded successfully!";
  } else {
    echo "Invalid file.";
  }
?>

做得很好!

做得很好!

恭喜您!您已经学会了如何验证和保护表单输入,从而确保网页应用安全可靠。在下一课中,我们将学习如何在 PHP 中处理文件上传。让我们继续编写代码吧!

表单验证 — 插图 10

常见问题解答

「表单验证」课时是免费的吗?

是的 — 「表单验证」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 3 节课。

「表单验证」这节课中我会学到什么?

验证用户输入,确保安全性和正确性 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 PHP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。

「表单验证」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 PHP Academy 课中编写并运行代码吗?

能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 创建 HTML 表单
  2. 使用 PHP 处理表单数据
  3. 表单验证
← 返回 PHP Academy