php与web页面交互(一)

web交互

工作原理
GET在这里插入图片描述
GET传参
当表单以GET方式提交时,会将用户填写内容放在URL参数中进行提交,表单的method属性不写(或改为get)然后提交表单,会得到下方URL
在这里插入图片描述

http://localhost/login.php?username=test&password=123456

“?”后面的内容为参数信息
参数是由参数名和参数值组成的,中间使用等号“=”进行连接
多个参数之间使用“&”分隔
username和password是参数名,对应表单中的name属性
test和123456是参数值,对应用户填写的内容

注意:若要使用GET方式发送表单,URL的长度应限制在1MB字符以内。如果发送的数据量太大,数据将被截断,从而导致意外或失败的处理结果。

POST方式
method属性表示提交方式
action属性表示提交的目标地址,如果省略,表单则提交给当前页面进行处理。
当单击按钮时,表单中具有name属性的元素会被提交,提交数据的参数名为name属性的值,参数值为value属性的值。

<form method="post" action="reg.php">
    <input type="text" name="user" value="" />
    <input type="password" name="pwd" value="" />
    <input type="submit" value="提交" />
</form>

数组方式提交数据–单选按钮

<input type="radio" name="binary" value="yes" /> 对
<input type="radio" name="binary" value="no" /> 错
对于一组单选按钮,它们应该具有相同的name属性和不同的value属性。
当表单提交时,如果选中单选按钮“对”,则提交的数据为“binary=yes”
若两个单选按钮都没有被选中,则name属性为binary的数据不会被提交。

提交数据–下拉菜单

<select name="city">
<option value="济南">济南</option><option value="天津">天津</option>
<option value="大连">大连</option><option value="其他">其他</option>
</select>
对于下拉菜单,它提供了有限的选项,用户只能选择下拉菜单中的某一项。
如果用户选择“大连”并提交表单,则提交的数据为“city=大连”
<input type="checkbox" name="hobby[]" value="swimming"> 游泳
<input type="checkbox" name="hobby[]" value="reading"> 读书
<input type="checkbox" name="hobby[]" value="running"> 跑步
print_r($_POST['hobby']);
Array ( [0] => swimming [1] => running )
一组复选框可以提交多个值,因此复选框的name属性使用“hobby[]”数组形式。
当用户勾选“羽毛球”和“乒乓球”时,提交的hobby数组有两个元素:羽毛球和乒乓球。
当用户没有勾选任何复选框时,表单将不会提交hobby数据。

判断表单数据是否为空-POST
当需要判断表单中“name”属性是否为空时,可以使用empty()函数。

if(empty($_POST['name'])){
 //没有收到name,或name的值为空
}

用empty()函数判断数组元素是否为空,为空时返回true,元素不存在时也返回true。
过滤外部数据
在开发 PHP 程序时,为了便于调试,会将用户输入的内容直接显示到网页中。但是当网站上线时,如果不对用户的输入进行任何过滤,会带来安全风险。

<div>
用户名: <div><?php echo $_POST['username']; ?></div>
来访时间: <div>2015-03-18</div>
</div>
上述代码将一个来自 POST 方式提交的 username 字段直接输出到网页中。
如果用户输入“</div>”,那么网页结构会遭到破坏。
如果用户输入<script>标记和 JavaScript 代码,那么这些代码也会被浏览器执行,从而威胁到网站的安全。

HTML特殊字符处理
在这里插入图片描述
HTML特殊字符处理–nl2br
举例: textarea中的换行符是“\r\n”,而不是HTML中的换行标记“
”。因此,若在表单的textarea标记中输入多行文本,然后将文本显示在div标记中时,会遇到换行显示成空格的问题。
nl2br()函数可以将字符串中的“\n”转换成HTML换行符,示例代码如下

echo nl2br(“盛邦\n升华", false);
盛邦<br>
升华
nl2br()函数的第二个参数用于设置使用XHTML兼容换行符,默认值为true。
当第二个参数设置为false时,会将字符串中的“\n”转换成<br>,否则转换为<br/>。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值