网络安全入门学习第十七课——PHP表单交互

这篇具有很好参考价值的文章主要介绍了网络安全入门学习第十七课——PHP表单交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、表单用来干什么

表单的主要功能:就是在网页上用于输入信息的区域,收集用户输入的信息,并将其提交给后端的服务器进行处理,实现用户与服务器的交互。
例如:购物结算、信息搜索等都是通过表单实现的。


二、创建表单

一个完整的表单是由表单域和表单控件组成的。其中,表单域由form标记定义,用于实现用户信息的收集和传递。

<form action="form.php" method="post" enctype="multipart/form-data">
   <!-- 各种表单控件 -->
   <!-- _POST _GET -->
</form>

<!-- -->是HTML的注释标记,用于解释和说明。

属性名称 说明
action 指定接收并处理表单数据的服务器程序的URL地址
method 设置表单数据的提交方式,常用的有GET和POST方式,默认值为GET
enctype 规定发送到服务器之前应该如何对表单数据进行编码

action属性的值可以是绝对路径、相对路径,若省略该属性则表示提交给当前文件进行处理。

GET方式传递的表单在URL地址栏中可见。相比GET方式,POST方式提交的数据是不可见的,在交互时相对安全。因此,通常情况下使用POST方式提交表单数据。

enctype属性的默认值为application/x-www-form-urlencoded,表示在发送表单数据前编码所有字符。除此之外还可以设置为multipart/form-data表示不进行字符编码,尤其是含有文件上传的表单必须使用该值;设置为text/plain表示将空格转换为“+”加号,但不对特殊字符编码。


三、GET和POST交互方式

当PHP收到来自浏览器提交的数据后,会自动保存到超全局变量中。

常见的超全局数组变量有$_POST、$_GET

通过POST方式提交的数据会保存到 $_POST 中

通过GET方式提交的数据会保存到 $_GET 中

例子:一次完整的表单数据交互

form表单页面,设置form表单提交方式为 post,action设置要提交到的页面地址:
<html>
	<head>
		<meta charset="utf-8">
		<title>php-study</title>
	</head>
	<body>

	<form action="welcome_post.php" method="post">
		名字: <input type="text" name="fname">
		年龄: <input type="text" name="age">
		<input type="submit" value="提交">
	</form>
	</body>
</html>

post提交接收页面 welcome_post.php:
<?php
header("Content-type:text/html;charset=utf-8");
?>
欢迎<?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?>岁。

四、数组方式表单提交

<html>
	<head>
		<meta charset="utf-8">
		<title>php-study</title>
	</head>
	<body>

		<form action="welcome_post_array.php" method="post">
		<!--代表一位数组-->
			<input type="checkbox" name="hobby[]" value="swimming"> 游泳
			<input type="checkbox" name="hobby[]" value="reading"> 读书
			<input type="checkbox" name="hobby[]" value="running"> 跑步

			<!--注意form数组名字应该一样的,比如下面篮球不会放在hobby数组里而是放在hobby1数组里-->
			<input type="checkbox" name="hobby1[]" value="basketball"> 打篮球

			名字: <input type="text" name="fname">
			年龄: <input type="text" name="age">
			<input type="submit" value="提交">
			<textarea name="tr"></textarea>
		</form>
	</body>
</html>

$POST中的hobby元素是一个索引数组,数组中的元素是用户所选复选框对应的value属性值。 当用户未选中任何复选框时,$POST数组中将不存在hobby元素。

//welcome_post_array.php

<?php
header("Content-type:text/html;charset=utf-8");
?>
欢迎<?php echo $_POST["fname"];?>!<br>
你的年龄是 <?php echo $_POST["age"];?>岁。
你的爱好是: <?php print_r($_POST["hobby"],false);?>
你的textarea是: <?php echo nl2br($_POST["tr"]);?>

五、GET和POST的区别

1、post请求更安全;post请求不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中,get请求的是静态资源,则会缓存,如果是数据,则不会缓存。

2、post请求发送的数据更大,get请求有url长度限制。

3、post请求能发送更多的数据类型,get请求只能发送ASCII字符。

4、传参方式不同。

5、get产生一个TCP数据包;post产生两个。文章来源地址https://www.toymoban.com/news/detail-526880.html


到了这里,关于网络安全入门学习第十七课——PHP表单交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全学习(十七)VlAN

    vlan是二层技术,路由器上不能配置vlan表 主要应用在交换机上 广播的危害:增加网络/终端负担,传播病毒,安全性 路由器也可以隔离,但有缺点         成本高         不灵活 1.目的         • 划分广播域         • 增强网络安全性         • 简化了网络的管理 2.v

    2024年02月05日
    浏览(42)
  • ACL 访问控制 过滤数据 维护网络安全(第七课)

    ACL是Access Control List(访问控制列表)的缩写,是一种用于控制文件、目录、网络设备等资源访问权限的方法。ACL可以对每个用户或用户组设置不同的访问权,即在访问控制清单中为每个用户或用户组指定允许或禁止访问该资源的权限。它通常由一系列规则组成,规则定义了一

    2024年02月10日
    浏览(36)
  • 网络安全进阶学习第十四课——MSSQL注入

    强类型数据库,会把数字和字符严格区分的。 有四个默认的数据库: 1、master (重点) 保存着SQL Server实例的配置、权限、数据库定义和其他需要的信息。 2、model 模板数据库。每当创建一个新的数据库(包括系统数据库的TempDB),会创建一个以 Model 数据库为副本数据库,并

    2024年02月14日
    浏览(35)
  • 网络安全进阶学习第十课——MySQL手工注入

    重点库: information_schema PHP的网站,常用数据库为MYSQL、PostgreSQL 判断数据库类型: MYSQL:3306 PostgreSQL:5432 MSSQL:1433 使用场景:数据库在页面中存在显示位。 UNION操作符 用于连接两个以上的SELECT语句的结果组合到一个结果集合中。前提是两个select必有 相同列 。 1)首先判断

    2024年02月10日
    浏览(35)
  • 第十七课:利用 Setup Factory 制作 Qt 软件安装包

    功能描述:详细介绍如何利用 Setup Factory 制作 Qt 软件安装包,从 Setup Factory 软件安装到如何利用 Setup Factory 制作软件安装包,手把手教你将 Qt 应用程序制作成具有安装向导的安装包。 Setup Factory 是一款强大的安装程序制作工具,具备工程向导、自定义对话框、主题/皮肤样式

    2024年02月10日
    浏览(36)
  • 网络安全进阶学习第十五课——Oracle SQL注入

    Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。 Oracle服务默认端口:1521 Oracle和MySQL数据库语法大致相同,结构不太相同。 最大的一

    2024年02月11日
    浏览(29)
  • 网络安全进阶学习第十一课——MySQL手工注入(2)

    UA是 用户代理(User-Agent) 的缩写,里面含有客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。 一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正

    2024年02月14日
    浏览(45)
  • 数据库第十七课-------ETL任务调度系统的安装和使用

    🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉🎉🎉🎉🎉 🎂 🎂作者id:老秦包你会, 🎂 简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂 喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂

    2024年02月11日
    浏览(54)
  • 网络安全进阶学习第十三课——SQL注入Bypass姿势

    1、like,rlike语句,其中rlike是正则 2、大于号,小于号 3、符号:为不等于的意思相当于!= 4、采用regexp函数 5、in 6、between 1、 substring、substrB 2、 locate(str1,str2) 返回str1字符串在str2里第一次出现的位置,没有则返回0; locate(str1,str2, pos ) 返回str1字符串在str2里pos(起始位置)出现

    2024年02月13日
    浏览(33)
  • 孩子都能学会的FPGA:第十七课——用FPGA实现定点数的乘法

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包