PHP表单学习之表单的输入与验证

在之前的文章中给大家带来了《PHP数据库学习之怎样设置与获取PDO属性?》,其中详细的介绍了PHP中怎样设置与获取PDO属性的相关知识,本篇我们来看一下PHP表单的相关问题,希望对大家有帮助!

在之前的文章中给大家带来了《PHP数据库学习之怎样设置与获取PDO属性?》,其中详细的介绍了PHP中怎样设置与获取PDO属性的相关知识,本篇我们来看一下PHP表单的相关问题,希望对大家有帮助!

PHP表单学习之表单的输入与验证

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

在之前的文章中我们已经了解了PHP的基础,其中就有$_GET 和 $_POST 变量,它们用来检索表单中的信息,其中需要我们注意的知识点就是PHP表单用户输入和表单验证。那接下来我们就来看一下PHP中表单输入与表单验证的相关知识吧。

PHP表单和用户输入

想要去了解PHP表单和用户输入,首先我们要明白什么是表单。Web表单准确来说算是一个互动平台,主要的功能就是让浏览者和网站有一个互动的平台。表单主要就是在网页中用来发送数据到服务器。

例如,注册信息时使用到的表单,当你填写完信息时需要提交,这时候提交就是将你注册时表单上的内容从客户端浏览器传送到服务器端,再经过PHP程序进行处理后,再将用户所需要的信息传递回到客户端浏览器上,通过获取用户的信息,使得PHP与Web表单实现交互。就是提供了这么一个互动的平台。

接下来我们通过示例来看一下表单,示例如下:

PHP中文网

登录后复制

其中需要我们注意的是表单属于HTML的知识,更多的相关知识,大家可以点击《HTML教程》进行学习,上述示例的运行结果:

PHP表单学习之表单的输入与验证

这便是我们所说的表单,那么我们在其中填写的信息也就是表单信息会发送到哪里呢?当我们点击提交的时候,表单中的数据就会以POST的形式,发送到form.php这个页面。

登录后复制

我们发送到from.php的运行结果如下:

PHP表单学习之表单的输入与验证

当用户输入完成后,这时候就需要对表单进行验证了,应该在任何可能的时候通过客户端脚本对用户输入进行验证。浏览器验证速度更快,并且可以减轻服务器的负载。

如果用户输入需要插入数据库,您应该考虑使用服务器验证。在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。那么接下来我们一起来看一下表单验证的相关知识吧。

PHP表单验证

在处理PHP表单时我们需要考虑安全性。我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们需要对表单进行数据安全验证。接下来我们通过实例来看一下表单中的必须与可选文本字段,单选按钮,及提交按钮。

示例如下:

PHP.cn

PHP 表单验证实例

登录后复制

输出结果:

PHP表单学习之表单的输入与验证

其中我们需要注意的是不同的字段有不同的验证规则,上述示例中不同字段的验证规则如下:

名字的验证规则是必须的,并且只能包含字母和空格。E-mail的验证规则是必须的,其中必须是一个有效的电子邮件地址(包含;@;和;.;)。网址的验证规则的是可选的,并且如果存在,它必须包含一个有效的URL。备注的验证规则是可选的,多行输入字段。性别的验证规则是必须的,必须选择一个。

通过上述示例我们再来看一下其中用到的知识:

$_SERVER[;PHP_SELF;] 变量

$_SERVER[;PHP_SELF;]是一种超全局变量,它返回当前执行脚本的文件名。因此,$_SERVER[;PHP_SELF;] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。

htmlspecialchars() 函数

htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 &lt; 和 &gt; 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。

其中我们需要注意的是:

$_SERVER[;PHP_SELF;] 变量能够被黑客利用,如何避免 $_SERVER[;PHP_SELF;] 被利用?

$_SERVER[;PHP_SELF;] 可以通过 htmlspecialchars() 函数来避免被利用。

form 代码如下所示:

登录后复制

输出结果:

PHP表单学习之表单的输入与验证

其中我们需要注意的是:

我们在执行以上脚本时,会通过$_SERVER[;REQUEST_METHOD;]来检测表单是否被提交 。如果 REQUEST_METHOD 是 POST, 表单将被提交 – 数据将被验证。如果表单未提交将跳过验证并显示空白。在以上实例中使用输入项都是可选的,即使用户不输入任何数据也可以正常显示。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

PHP利用3个预定义变量来快速获取表单数据

原创2021-08-25 11:53:172409 + php学习QQ群(点击入群)在web开发中,如果想要获取用户提交的信息,往往需要使用到表单。利用一个form表单给用户展示需要填写的信息,然后用户输入信息后提交表单;表单提交数据后就需要获取到数据进行处理。那么怎么才能快速获取表单数据呢?其实PHP中内置了3个预定义变量(又叫超全局变量)来获取,本篇文件就来给大家具体介绍一下。

首先我们来了解一下表单的工作过程:

  • 首先表单必须展示给用户,用户输入信息后提交表单。

  • 每个表单都会指定一个网页,用户提交表单后,这个网页会被加载并负责处理表单信息。

例如下面user.html文件中的form标签内容,就是一个最简单的表单

表单提交

用户名:
密 码:
生 日:

登录后复制

form标签的methods属性是用来规定如何发送表单数据,是使用get方式(method="get")还是post方式(method="post")。然后表单数据会发送到 action 属性所规定的页面,我们这就是user.php页面中进行处理。

而根据提交表单数据的方式不同,获取表单数据的方法也有所不同:get方式可以使用预定义变量$_GET来获取;post方式可以使用预定义变量$_POST来获取;如果不知道 form 表单通过哪种方式提交数据,就可以使用预定义变量$_REQUEST来获取,它两种方式的数据都可以获取。

下面就来一一了解:

1、使用预定义变量$_GET快速获取表单数据(form表单需要设置为method="get")

在程序的开发过程中,由于 GET 方法提交的数据是附加到 URL 上发送的,因此在 URL 的地址栏中将会显示“URL+用户传递的参数”类型的信息,如下所示:

http://url?name1=value1&name2=value2 …登录后复制

  • name1、name2 为表单元素的名称(有表单元素的name属性设置),value1、value2 为表单元素的值。url和表单元素之间用“?”隔开,而多个表单元素之间用“&”隔开,每个表单元素的格式都是“name=value”,固定不变。

我们添加一下user.html文件的表单看看URL 的地址栏

PHP表单学习之表单的输入与验证

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

PHP表单学习之表单的输入与验证

user.php文件中可以直接使用预定义变量$_GET来获取数据,$_GET 全局变量是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。(注只要是 URL 中的参数都可以使用 $_GET 获取。)

登录后复制

PHP表单学习之表单的输入与验证

可以使用$_GET['键名']的方式来一一获取每个表单元素的值:

登录后复制

PHP表单学习之表单的输入与验证

2、使用预定义变量$_POST快速获取表单数据(form表单需要设置为method="post")

post方法不依赖于 URL,不会将传递的参数值显示在地址栏中。

$_POST 全局变量也是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。

登录后复制

PHP表单学习之表单的输入与验证

3、使用预定义变量$_REQUEST快速获取表单数据

$_REQUEST 全局变量是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。

登录后复制

PHP表单学习之表单的输入与验证

最后给大家推荐最新最全面的《PHP视频教程》~快来学习吧!

以上就是PHP利用3个预定义变量来快速获取表单数据的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/27212/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-09-29 5:06:29
下一篇 2022-09-29 5:07:31

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!