PHP 表单和用户输入
PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入
PHP 表单处理
当处理 HTML 表单时,PHP 能把来自 HTML 页面中的表单元素自动变成可供 PHP 脚本使用
当用户填写完上面的表单并点击提交按钮时,表单的数据会被送往名为 “welcome.php” 的 PHP 文件
|
|
PHP 获取下拉菜单的数据
PHP 下拉菜单单选
|
|
PHP 下拉菜单多选
|
|
单选按钮表单
PHP 单选按钮表单中 name 属性的值是一致的,value 值是不同的
|
|
checkbox 复选框
PHP checkbox 复选框可以选择多个值
|
|
PHP 表单验证
在处理PHP表单时我们需要考虑安全性
PHP 表单验证实例
- 名字: 必须。 +只能包含字母和空格
- E-mail: 必须。 + 必须是一个有效的电子邮件地址(包含’@’和’.’)
- 性别: 必须。 必须选择一个
- 网址: 可选。如果存在,它必须包含一个有效的URL
- 备注: 可选。多行输入字段(文本域)
|
|
表单元素
$_SERVER[“PHP_SELF”] 会发送表单数据到当前页面,而不是跳转到不同的页面
htmlspecialchars():把一些预定义的字符转换为 HTML 实体
|
|
XSS
XSS又叫 CSS (Cross-Site Script) ,跨站脚本攻击
$_SERVER[“PHP_SELF”]的字符串就会包含HTTP链接后面的JavaScript程序代码,
利用这点重定向页面到另外一台服务器的页面上,页面 代码文件中可以保护恶意代码,代码可以修改全局变量或者获取用户的表单数据
|
|
防止XXS
$_SERVER[“PHP_SELF”] 可以通过 htmlspecialchars() 函数来避免被利用
|
|
验证表单数据
test_input封装过滤的数据
- 用户所有提交的数据都通过 PHP 的 htmlspecialchars() 函数处理
- 使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)
- 使用PHP stripslashes()函数去除用户输入数据中的反斜杠 ()
|
|
PHP 表单 - 必需字段
设置表单必需字段及错误信息
PHP - 必需字段
加入了一些新的变量: $nameErr, $emailErr, $genderErr, 和 $websiteErr,这些错误变量将显示在必需字段上
为每个$_POST变量增加了一个if else语句,这些语句将检查 $_POST 变量是 否为空(使用php的 empty() 函数)
|
|
PHP - 显示错误信息
为每个字段中添加了一些脚本, 各个脚本会在信息输入错误时显示错误信息
|
|
PHP 表单 - 验证邮件和URL
验证 names(名称), e-mails(邮件), 和 URLs
PHP - 验证名称
通过简单的方式来检测 name 字段是否包含字母和空格,如果 name 字段值不合法,将输出错误信息
|
|
PHP - 验证邮件
通过简单的方式来检测 e-mail 地址是否合法。如果 e-mail 地址不合法,将输出错误信息
|
|
PHP - 验证 URL
检测URL地址是否合法 (以下正则表达式运行URL中含有破折号:”-“), 如果 URL 地址不合法,将输出错误信息
|
|
PHP - 验证 Name, E-mail, 和 URL
|
|
PHP 完整表单实例
用户在点击”提交(submit)”按钮提交数据前保证所有字段正确输入
PHP - 在表单中确保输入值
|
|
PHP - 完整表单实例
|
|
PHP $_GET 变量
在 PHP 中,预定义的 $_GET 变量用于收集来自 method=”get” 的表单中的值
$_GET 变量
预定义的 $_GET 变量用于收集来自 method=”get” 的表单中的值
从带有 GET 方法的表单发送的信息,对任何人都是可见的,并且对发送信息的量也有限制
|
|
当用户点击 “Submit” 按钮时,发送到服务器的 URL
|
|
“welcome.php” 文件现在可以通过 $_GET 变量来收集表单数据
|
|
PHP $_POST 变量
在 PHP 中,预定义的 $_POST 变量用于收集来自 method=”post” 的表单中的值
从带有 POST 方法的表单发送的信息,对任何人都是不可见的,并且对发送信息的量也没有限制
|
|
当用户点击 “提交” 按钮时,URL 类似
|
|
“welcome.php” 文件现在可以通过 $_POST 变量来收集表单数据
|
|