查看: 1436|回复: 17

[其他语言] php进阶教程之表单处理

[复制链接]

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

发表于 2022-5-4 17:55:16 | 显示全部楼层 |阅读模式
本帖最后由 hackerbob 于 2022-5-4 17:56 编辑

什么是表单?
表单其实就是数据,我们访问网站时想从网站中获取信息,就要先提交数据,告诉网站你要干啥,不然,网站怎么给你返回?
表单的提交不需要我们这些访问者来操心,网站通过前端代码,在页面中显示出一些按钮,输入框让用户输入,输入后,会把数据即表单发到网站后台,网站后台再根据表单返回相应的信息
当我们访问某一个网站时,输入完用户名和密码后,点击提交按钮,我们的用户名和密码就会以表单的形式发到网站后台
网站后台接到数据后,对用户名和密码进行判断,如果正确,就返回登陆成功,否则失败
请求方式
网站的请求方式分为两种
1.get方式
get方式是把表单放到url中
如 http:\\www.hackerbobhahahaha.com\?user=admin&pass=123456
?号后面的就是参数,用户名为admin,密码为123456
优点:快速,资源占用少
缺点:有长度限制,保密性不好
2,post方式
post方式是把表单通过两个tcp数据包发到网站后台
缺点:比get方式慢
优点:对长度没有限制,保密性好[/md]
1.处理get表单
php通过$_GET["参数名"]来获取参数值
例子:
我们首先用html写一个提交表单的页面
html注释和php不一样:<!-- 中间是注释 -->
[PHP] 纯文本查看 复制代码
<html>


<head>

<meta charset="utf-8">

<!-- 定义网站编码为utf-8,防止出现乱码 -->

<title>get</title><!-- 标签页名为get -->

</head>

<body>

<form action="bob.php" method="get">

<!-- 定义一个get表单,action是要把表单发送到哪个文件,method是请求方式,这里是get -->

用户名: <input type="text" name="user"><!--输入框-->

密码: <input type="text" name="pass"><!--输入框-->

<input type="submit" value="提交"><!--定义按钮-->

</form>

</body>

</html>


我们再来写一个php后端来接收get表单数据

[PHP] 纯文本查看 复制代码
<?php

header("content-type:text/html;charset=utf-8");

//定义编码,防止出现乱码

echo "您的用户名是".$_GET["user"];

echo "您的密码是".$_GET["pass"];

?>


结果:


2.处理post表单
php通过$_POST["参数名"]来获取参数值
先用html写一个提交post表单的页面

[PHP] 纯文本查看 复制代码
<html>

<head>

<meta charset="utf-8">

<!-- 定义网站编码为utf-8,防止出现乱码 -->

<title>post</title><!-- 标签页名为post -->

</head>

<body>

<form action="bob.php" method="post">

<!-- 定义一个post表单,action是要把表单发送到哪个文件,method是请求方式,这里是post -->

用户名: <input type="text" name="user"><!--输入框-->

密码: <input type="text" name="pass"><!--输入框-->

<input type="submit" value="提交"><!--定义按钮-->

</form>

</body>

</html>


我们再写一个php后端来接收post表单数据

[PHP] 纯文本查看 复制代码
<?php

header("content-type:text/html;charset=utf-8");

//定义编码,防止出现乱码

echo "您的用户名是".$_POST["user"];

echo "您的密码是".$_POST["pass"];

?>


结果:




3.表单验证

isset(变量名)//用来判断某个变量是否存在

empty(变量名)//用来判断某个变量的值是否为空

isset 相当于 !empty

两个函数意义相反

我们来实现一个简单的登陆系统

html前端代码


[PHP] 纯文本查看 复制代码
<html>

<head>

<meta charset="utf-8">

<title>表单验证</title>

</head>

<body>

<form action="bob.php" method="post">

用户名: <input type="text" name="user">

密码: <input type="text" name="pass">

<input type="submit" value="提交">

</form>

</body>

</html>



php后端代码

[PHP] 纯文本查看 复制代码
<?php

header("content-type:text/html;charset=utf-8");

if (empty($_POST["user"]) or empty($_POST["pass"]))//判断user或者pass的值是否为空

{

        echo "请输入用户名和密码";//如果是空,让访问者输入

}

else

{

        

        if ($_POST["user"]=="bob" and $_POST["pass"]=="123456")//判断user和pass的值是否都正确

        {

                echo "登陆成功,欢迎bob";

        }

        else

        {

                echo "用户名或密码错误";

        }        

}

?>


结果:
没输入用户名密码时

输入错误的用户名和密码时

输入正确的用户名和密码时



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2022-5-4 18:51:39 | 显示全部楼层
本帖最后由 xiaomeng 于 2022-5-4 18:52 编辑

太简单了,我用python写,10行代码吧


而且还能加cookies和session
Manners maketh man

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-5-4 18:53:05 | 显示全部楼层
xiaomeng 发表于 2022-5-4 18:51
太简单了,我用python写不是吹牛,10行代码吧

是的呀,但教程不应该是从最基础的慢慢讲吗,要不然,零基础的听不懂呀

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2022-5-4 19:01:52 | 显示全部楼层
hackerbob 发表于 2022-5-4 18:53
是的呀,但教程不应该是从最基础的慢慢讲吗,要不然,零基础的听不懂呀 ...

现在谁还用php了,主流是node.js和java还有golang,不信你自己上网查查写三个,哪个不火
Manners maketh man

1

技术

25

魅力

7

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
11343
人气
297
分享
42

论坛元老优秀版主活跃会员最佳新人灌水之王

发表于 2022-5-4 19:08:54 | 显示全部楼层
xiaomeng 发表于 2022-5-4 19:01
现在谁还用php了,主流是node.js和java还有golang,不信你自己上网查查写三个,哪个不火 ...

本论坛用的discuz,还有知名的wordpress等,都用的是php
Just do it.

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-5-4 19:12:55 | 显示全部楼层
xiaomeng 发表于 2022-5-4 19:01
现在谁还用php了,主流是node.js和java还有golang,不信你自己上网查查写三个,哪个不火 ...

吾爱论坛,卡饭论坛,火绒论坛,x64论坛,用php的多着呢。。。。。。。

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2022-5-4 19:13:54 | 显示全部楼层
skystars 发表于 2022-5-4 19:08
本论坛用的discuz,还有知名的wordpress等,都用的是php

首先discuz还有wordpress都是好几十年前的东西了,界面看起来比较古老,有的还有些小bug,所以我个人不推荐使用php
Manners maketh man

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2022-5-4 19:15:22 | 显示全部楼层
hackerbob 发表于 2022-5-4 19:12
吾爱论坛,卡饭论坛,火绒论坛,x64论坛,用php的多着呢。。。。。。。

别逗我,那都是discuz的产品,你说了半天都是一样
Manners maketh man

2

技术

6

魅力

2

原创

病毒研究组

Rank: 8Rank: 8

积分
1721
人气
179
分享
17

最佳新人活跃会员

 楼主| 发表于 2022-5-4 19:16:33 | 显示全部楼层
xiaomeng 发表于 2022-5-4 19:15
别逗我,那都是discuz的产品,你说了半天都是一样

虽然产品差不多,但是用的人还是很多呀

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2022-5-4 19:18:47 | 显示全部楼层
hackerbob 发表于 2022-5-4 19:16
虽然产品差不多,但是用的人还是很多呀

…discuz都连年失修,界面跟20年前的一样,ui很差劲
Manners maketh man
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表