主讲老师:郭盛华
三个字段
name、email 和 txt属于文本输入元素。
HTML 代码是这样的:
用户名:<input type="text" name="name"> 邮件地址:<input type="text" name="email"> 留言内容:<textarea name=“txt" rows="5"></textarea>
在下面的代码中我们增加了一些新变量:$nameErr、$emailErr、$txtErr 。这些错误变量会保存被请求字段的错误消息。我们还为每个$_POST 变量添加了一个 ifelse 语句。这条语句检查 $_POST 变量是否为空(通过 PHP empty() 函数)。如果为空,则错误消息会存储于不同的错误变量中。如果不为空,则发送用户输入数据:
- <?php
- // 定义变量并设置为空值
- $name=""; //用户名
- $email=""; //电邮
- $txt ="";//留言内容
- if($_SERVER["REQUEST_METHOD"] == "POST") {
- if (empty($_POST["name"])) {
- $nameErr = "用户名不能为空";
- } else {
- $name = $_POST["name"];
- }
- if (empty($_POST["email"])) {
- $emailErr = "电子邮件不能为空";
- } else {
- $email = $_POST["email"];
- }
- if (empty($_POST["txt"])) {
- $txt = "";
- } else {
- $txt = $_POST["txt"];
- }
- }
- ?>
复制代码
PHP 表单安全性
什么是 $_SERVER["PHP_SELF"]变量? $_SERVER["PHP_SELF"] 是一种超全局变量,它返回当前执行脚本的文件名。 因此,$_SERVER["PHP_SELF"]将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。 什么是 htmlspecialchars() 函数? htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着< 和 >之类的 HTML 字符会被替换为< 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。
关于 PHP 表单安全性的重要提示
$_SERVER["PHP_SELF"] 变量能够被黑客利用! 如果您的页面使用了 PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。 提示:跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。 所以通过使用 htmlspecialchars() 函数能够避免 $_SERVER["PHP_SELF"]被利用。
表单的 HTML代码是这样的: <form method="post"action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 当提交此表单时,通过 method="post" 发送表单数据。
|