专注分享优质资源

【网站源码】PHP教程/表单-1~接收表单数据

爱留 网站源码

上期:#【NB】PHP教程/面向对象-9~final关键字#
看这个表单教程你首先得有html基础[滑稽][大拇指]然后..没了

我们创建一个简单的表单页面

运行结果:

然后我们点提交他就会把两个输入框的内容以get方式提交到a.php

get:请求参数会显示在url里(如a.php?username=huajimc&password=123456),且数据长度有限制
post:不会在url中显示参数,无长度限制

然后我们写一个简单的a.php,看看可以获取到数据不

$_POST 获取post提交的数据
$_GET 获取get提交的数据
$_REQUEST 获取所有提交的数据

然后我们随便输入账号密码提交一下:

所以我们可以获取到数据[滑稽][大拇指]

然后我们要处理这些数据,我们就写简单点吧

然后我们再提交一下:

但是现在有个问题[滑稽][心碎]如果用户输空的账号密码,他也会把这个信息插入到数据库,所以我们要进行验证
有人说把input设置成required就可以防止用户输空内容了[滑稽][心碎]但是这样没用,[滑稽][心碎]用户可以直接把数据传到a.php,这样他就可以传入空内容了

所以我们要验证:

这样当我们提交空数据就会~

但是还有个问题[滑稽][心碎]
如果我们注册用户名123456,密码123456,那么sql语句假设是这样:
insert into user (username,password) values ('123456','123456')
那如果用户注册用户名123456,密码');drop table user;#
那么sql语句会是这样:
insert into user (username,password) values ('123456','');drop table user;#)
我们拆开看:
insert into user (username,password) values ('123456','');
drop table user;
#)
首先他会插入一行 用户名123456,密码为空
然后他会把user表也就是用户表删了!![滑稽][心碎]
然后#是注释,后面的不会执行....
所以这样的话会直接把用户表删了

所以我们要对用户输入的内容进行处理,我们可以用addslashes()函数:

这样就会对用户名密码中的特殊字符进行转义,从而防止sql注入

本期教程结束~

为什么没人给滑稽mc葫芦[滑稽][心碎][心碎]

评论列表