如何使用PHP来验证表单数据
主讲老师:郭盛华
三个字段
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" 发送表单数据。
视频课程下载:https://bbs.vm888.com/thread-90-1-1.html
三个字段
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" 发送表单数据。
视频课程下载:https://bbs.vm888.com/thread-90-1-1.html
>更多相关文章
- 11-15我的第一个PHP留言板页面
- 11-15PHP过滤器用于验证非安全来源的数据
- 11-15PHP创建一个文件上传表单
- 11-15PHP文件创建,写入,视频课程
- 11-15PHP文件打开,读取 fopen()函数
- 11-15PHP文件如何引入,include语句
- 11-15PHP错误处理语句,file_exists()函数
- 11-15PHP-Sessions存储的使用方法
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 11-28Bossjob宣布上线AI翻译功能
- 11-28腾讯应用宝电脑版推小宝AI助手 部分功能已
- 11-28周鸿祎亲自上阵演短剧,将于发布会上播出
- 11-28机构:2024第三季度全球NAND闪存产业营收增
- 11-18LG新能源宣布与Bear Robotics达成合作,成为
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御