本帖最后由 hackerbob 于 2022-4-22 17:34 编辑
这是我总结的php进阶内容,完全由我一字一句写出来的,绝非复制粘贴网上的教程
其中参杂了一些我的个人见解,如果有不严谨或者不正确的地方请指出,我会更正
以后,我会逐渐完善本篇教程
什么是表单?
表单其实就是数据,我们访问网站时想从网站中获取信息,就要先提交数据,告诉网站你要干啥,不然,网站怎么给你返回?
表单的提交不需要我们这些访问者来操心,网站通过前端代码,在页面中显示出一些按钮,输入框让用户输入,输入后,会把数据即表单发到网站后台,网站后台再根据表单返回相应的信息
当我们访问某一个网站时,输入完用户名和密码后,点击提交按钮,我们的用户名和密码就会以表单的形式发到网站后台
网站后台接到数据后,对用户名和密码进行判断,如果正确,就返回登陆成功,否则失败
请求方式
网站的请求方式分为两种
1.get方式
get方式是把表单放到url中
如 http:\www.hackerbobhahahaha.com\?user=admin&pass=123456
?号后面的就是参数,用户名为admin,密码为123456
优点:快速,资源占用少
缺点:有长度限制,保密性不好
2,post方式
post方式是把表单通过两个tcp数据包发到网站后台
缺点:比get方式慢
优点:对长度没有限制,保密性好
1.处理get表单
php通过$_GET["参数名"]来获取参数值
例子:
我们首先用html写一个提交表单的页面
如果你不会html,不用担心,我会对html代码做出解释
html注释和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
header("content-type:text/html;charset=utf-8");
//定义编码,防止出现乱码
echo "您的用户名是".$_GET["user"];
echo "您的密码是".$_GET["pass"];
?>
结果:
2.处理post表单
php通过$_POST["参数名"]来获取参数值
先用html写一个提交post表单的页面
<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
header("content-type:text/html;charset=utf-8");
//定义编码,防止出现乱码
echo "您的用户名是".$_POST["user"];
echo "您的密码是".$_POST["pass"];
?>
结果:
3.表单验证
isset(变量名)//用来判断某个变量是否存在
empty(变量名)//用来判断某个变量的值是否为空
isset 相当于 !empty
两个函数意义相反
我们来实现一个简单的登陆系统
html前端代码
<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
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 "用户名或密码错误";
}
}
?>
结果:
没输入用户名密码时
输入错误的用户名和密码时
输入正确的用户名和密码时
|