第七章 php与web页面交互

本文讲述了PHP如何处理web表单提交的数据,包括通过POST和GET方式。当表单提交时,数据会被保存在$_POST或$_GET超全局数组中。还介绍了URL参数交互,以及在PHP中接收和输出URL参数的方法。另外,提到了HTML特殊字符处理,以防止XSS攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第七章 php与web页面交互

web交互

web表单交互
当用户在网站上填写了表单后,需要将数据提交给网站服务器对数据进行处理或保存。通常表单都会通过method属性指定提交方式,当表单提交时,浏览器就会按照指定的方式发送请求。
例如,当提交方式为POST时,浏览器发送POST请求,当提交方式为GET时,浏览器发送GET请求。

当php收到来自浏览器提交的数据后,会自动保存到超全局变量中。超全局变量时php预定义的变量,可以在php脚本的任何位置使用。常见到超全局数组变量有$_POST G E T 等 , 通 过 P O S T 方 式 提 交 的 数 据 会 保 存 到 _GET等,通过POST方式提交的数据会保存到 GETPOST_POST中,通过GET方式提交的数据会保存到$_GET中。
为了使大家更好地掌握如何获取表单数据,接下来通过一个用户登录的案例来演示,如
login_php

<?php var_dump($_POST); ?> 用户名: 密码:

当表单被提交时,表单中具有name属性的元素会将用户填写的内容提交给服务器,php会将表单数据保存在 P O S T 数 组 中 。 _POST数组中。 POST_POST是一个关联数组,数组的键名对应表单元素的name属性,值是用户填写的内容。因此,当要接收表单提交的用户名和密码时,可以用如下代码来实现。
if(isset(KaTeX parse error: Expected 'EOF', got '&' at position 19: …ST[‘username’])&̲& isset(_POST[‘password’])){
$username = $_POST[‘username’];
$password = KaTeX parse error: Expected 'EOF', got '}' at position 26: …sword']; }̲ 在上述代码中,第一行的…_POST数据中的数据取出来,保存到变量中。若客户端没有提交用户名和密码,则if条件不满足,不进行处理。

7.1.2URL参数交互
当表单以GET方式提交时,会将用户填写的内容放在URL参数中进行提交。以例7—1为例,将表单的method属性删除(或将其值改为get),然后提交表单,会得到如下URL。
http://localhost/login.php?username=test&password=123456
在上述URL中,“?”后面的内容为参数信息。参数是由参数名和参数值组成的,中间使用等号“=”进行连接。多个参数之间使用“&”分隔。其中,username和password是参数名,对应表单中的name属性;test和123456是参数值,对应用户填写的内容。
接下来在php中使用 G E T 数 组 接 收 U R L 参 数 , 并 进 行 输 出 , 示 例 代 码 如 下 。 i f ( i s s e t ( _GET数组接收URL参数,并进行输出,示例代码如下。 if(isset( GETURLifisset_GET[‘username’])&& isset($_GET[‘password’])){
echo $_GET[‘username’]; //输出结果:test
echo $_GET[‘password’]; //输出结果:123456
}

7.1.3 数组方式提交数据
在web表单中,复选框是一种支持提交多个值的表单控件,在编写表单时应将其 name 属性设置为数组,示例代码如下。

游泳
读书
跑步

7.1.4 HTML 特殊字符处理
再将用户输入的内容输出到 HTML 中显示时,会遇到特殊字符问题。例如,用户提交一段HTML代码时,为了将代码原样显示,需要将里面的特殊字符串转换为实体字符,防止被浏览器解析。若没有对这些特殊字符进行处理,会给网站的安全带来风险,下面通过例 7-4来演示这种情况 。
xss.php
<?php
if(isset($_POST[‘content’])) {
echo $_POST[‘content’];
exit;
}
?>

留言内容:





按照上述代码编写完成后,通过浏览器访问该文件,并在留言框中输入一下内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值