3.后端基础

表单

表单在网页中主要负责数据采集功能,框一定是表单,eg:搜索框

由下述三部分组成

1、表单标签

告诉别人这是一个表单,承担:数据表该 给谁,怎么给

2、表单按钮

就是一个按键,有提交的功能

3、表单域

框 填写信息的地方

fig:

写一个表单

fig:

eg:写一个表单框,在框里输入内容,自动跳转到百度网页,并搜索该内容(代码从上往下第一行为表单标签、表单域、表单按钮)

fig:

结果得到

fig:

解释,wd是百度本身name的值

fig:

登录界面

fig:

页面自动填充密码:当表单域的type为password时,就会自动隐藏密码,但是并不是加密,只是让人看不见

fig:

fig:

我输入用户名、密码,传输到a.php里面

PHP代码

php是后端代码,但是php可以和html混淆使用,一般通过标识来区分

php的标识: php的四种标签风格

$_GET //获取GET传参

$_POST //获取POST传参

$_REQUEST //获取GET/POST传参

echo 1; //输出1
var_dump(1); //查看1的内容和数据类型
var_dump($_GET); //当你在浏览器中使用GET方法向服务器发送请求时,这些请求参数通常附加在URL的查询字符串中。例如,如果你访问http://example.com/?param1=value1&param2=value2,这里的param1和param2就是通过GET方法发送的参数。使用var_dump($_GET);这个函数会返回一个关联数组,其中包含了所有通过GET方法发送的参数及其值。如果某个参数不存在,则该参数在返回的数组中不会出现。

变量

需要有一个变量名与变量值 eg: $a=1;

数组

多个变量可以成为数组

fig:

数据库

1、基本结构:库 表 字段(列,即表头) 数据(行)
2、PHP文件与数据库产生关系方式

使用管道来,mysqli_函数组

fig:

3、执行sql语句 fig:

双引号:可以解析变量

单引号:不可以解析变量

\ :转义字符

fig:

fig:

fig:

=符号:

fig:

@符号:fig:

实现注册、登录功能

https://blog.csdn.net/2401_83017604/article/details/138755713

index.html

`

用户名: 密    码:   还没有账号,注册一个

register.html

`

用户名:   密     码: 密     码: 邮    箱  

<a href="./index.html">已经有账号了,去登录</a>

`

login.php

<?php
/* 连接数据库*/
$mysqli = new mysqli("localhost","root","root","poirot");
if($mysqli->connect_error){
die("数据库连接错误:". $mysqli->connect_error);
}
$pass_hash=password_hash($_POST["password"],PASSWORD_DEFAULT);
$username = $_POST["username"];
/* 判断用户是否点击了登录按钮*/
if(isset($_POST["login"])){
$sql = "SELECT pass_hash FROM login WHERE username='$username'";
$res =$mysqli->query($sql)->fetch_assoc();
/**登录验证 */
if($res){
if(password_verify($_POST["password"],$res["pass_hash"])){
echo "<script>alert('登录成功!') ;window.location.href='success.html';</script>";
}else{
echo "<script>alert('密码错误!');history.go(-1);</script>";
}
}else{
echo "<script>alert('用户不存在!');history.go(-1);</script>";
}
}

register.php

<?php
/* 判断用户名是否为空*/
if(empty($_POST["username"])){
die("用户名不能为空!");
}
/* 对密码进行规则验证*/
if(strlen($_POST["password"]) < 6){
die("密码不能小于6位!!");
}
/* 判断输入的两次密码是否一致*/
if($_POST["password"] !== $_POST["qpass"]){
die("两次输入的密码不一致!");
}
/* 验证邮箱的有效性*/
if(!filter_var($_POST["email"],FILTER_VALIDATE_EMAIL)){
die("请输入有效的邮箱格式!");
}
$password=$_POST["password"];
/* 对密码加密,保证数据的安全*/
$pass_hash=password_hash($_POST["password"],PASSWORD_DEFAULT);
/* 保存用户的数据*/
$username = $_POST["username"];
$mail = $_POST["email"];
/* 连接数据库*/
$mysqli = new mysqli("localhost","root","root","poirot");
if($mysqli->connect_error){
die("数据库连接错误:". $mysqli->connect_error);
}
/* 向数据表中传入用户的数据,方便后面对登录进行验证*/
if(isset($_POST["reg"])){
$sql = "INSERT INTO login (username,email,pass_hash,password) VALUES ('$username','$mail','$pass_hash','$password')";
$mysqli->query($sql);
if($mysqli->affected_rows > 0){
echo "<script>alert('注册成功!');history.go(-1);</script>";
}
else
echo "error";
}

posted @ 2024-12-17 00:05  poirotl  阅读(23)  评论(0)    收藏  举报