当前位置: 首页 > news >正文

邢台提供网站建设公司电话wordpress阅读更多

邢台提供网站建设公司电话,wordpress阅读更多,国外注册公司流程及费用,铜陵seo前言 本博客主要讲述利用php环境实现一个简单的前后端结合的用户登录和注册功能。phpstudy是PHP调试环境的集成包,该程序包集成了 ApachePHPMySQLphpMyAdmin 等多个工具,是很好用的调试环境的程序集成包。 目录 前言 1. 准备工作 1.1 工具 1.2 php…

前言

本博客主要讲述利用php环境实现一个简单的前后端结合的用户登录和注册功能。phpstudy是PHP调试环境的集成包,该程序包集成了 Apache+PHP+MySQL+phpMyAdmin 等多个工具,是很好用的调试环境的程序集成包。

目录

前言

1. 准备工作

1.1 工具

1.2 phpstudy 介绍

2. 创建网站

2.1 搭建PHP环境

3. 用户登录和注册功能

3.1 思路

3.2 准备阶段

3.3 前端部分

3.3.1 登录的前端页面

3.3.2?注册的前端页面

3.4 验证注册的数据

3.4.1 设置验证规则

3.4.2 phpMyAdmin 管理数据库

3.4.3 PHP 连接数据库

3.4.4 保存注册的数据到数据库中

3.5??登录验证

3.5.1 连接数据库


1. 准备工作

1.1 工具

在phpstudy官网中下载即可,选择对应的电脑位数

链接:Windows版phpstudy下载 - 小皮面板(phpstudy)

ddbc590c8118247be9598b600ea26611.png

下载好压缩包后,新建一个文件夹用来解压压缩包里面的文件。解压之后找打该文件夹,里面有如下文件,接着我们进行安装。选择自定义安装路径安装到你想安装的位置即可,这里不展开来说。

924c85fd59656eb222255a8a707dc0d3.png

安装好以后就可以在桌面看到该软件了

1.2 phpstudy 介绍

在桌面找到该软件后双击打开它,就可以看到如下页面,然后我们需要在该集成包中下载一些软件

c45932cedbdac68583b5749c98507c6c.png

403f39c74b236cd026fdd78f0f66043c.png

下载之后就回到主页去看,本次的案例我使用 Nginx 来启动 Web 服务,(这里选择可以多样)

7ba43ea02845488fcf4e7cfbdb00ce13.png

启动MySQL时会出现启动不了的情况 (能正常启动则跳到 “2.创建网站”)

解决: window键 + R 输入SERVICES.MSC 回车 ,找到 mysql服务 后右键停止服务,再重新启动即可

SERVICES.MSC

f83c0d2627ecfa9d6dc2f16981249ce8.png

还有一种情况可能是端口被占用的情况

这边推荐博客:使用phpStudy显示3306端口被占用,该怎么办?_phpstudy3306端口被占用怎么办-CSDN博客

2. 创建网站

2.1 搭建PHP环境

点击创建网站,开始初始化配置

083cd0e0ea722e1d6170298bf89b27a7.png

13eede599476f696d0d52ff7b058f0b1.png

注:端口可能存在被占用的情况,这时我们可以在设置中查看没有被占用的端口号,然后在创建网站时选择该端口即可

ecdeaf19a7bf13f52425d02cdaad70c4.png

然后我们打开网站

ab3e9ad855baccc7243d6e544b7dd9af.png

b9eedcef8d57de70ac1b097897b60ffc.png

也可以直接在网页中输入cs:81 也可以启动

cs ----> 网站域名

81 —> 端口号

这时在WWW下的cs文件就生成了官方默认给我们的文件

97e8e648d9fcf2e4249bf11c981a2eb2.png

可以把这些删除掉,放入我们写的网页(建议不删,因为容易因未知原因报错)

接下来我们来测试,放入我之前练习html+css时写的静态网页文件

b421a62c27c6ae77ad6b26cd85f27c27.png

然后返回创建的网页,也就是cs:81该网站域名,点击左上角的刷新,就可以看到测试成功了

e00521a61a9367e464ab8d9cba0f132a.png

到这里,我们PHP环境就配置成功了,接下来就基于该环境下来编写一个简单的用户登录和注册的功能,涉及到前端和后端以及数据库的数据交互。

3. 用户登录和注册功能

3.1 思路

在写这个功能时,我们来理清一下大致思路

  1. 新用户需要注册,把注册时的数据如用户名,密码和邮箱存放在数据库中
  2. 已经注册过的用户可以直接登录,登录这里的用户名和密码需要和数据库中的数据进行验证,可以在php文件中写验证规则
  3. 验证用户名的唯一性,若用户名不存在,则不允许登录
  4. 用户名正确,若密码错误也不允许登录,密码存在后端的数据库中

接下来一步一步来实现具体的功能

3.2 准备阶段

在phpstudy中新建一个网站,这里我建立了一个网站域名为 localhost ,端口号为 80 的网站,在该文件夹中新建一个名叫 re_login 的文件,然后拖动该文件在 VSCode 中打开,建立几个必要的文件,如下图:(user.php文件用不到,可不建立)

1eaa73218944667f9d869db33aa08841.png

index.html 为入口文件,这里主要编写前端登录页面

register.html 为跳转页面,是注册的前端的页面

login.php 用于验证用户登录时的数据验证,结合数据库的验证

register.php 对注册信息的验证,及操作数据库,把成功注册的数据保存到数据库中

xiaomi.html 为用户成功登录后显示的网页

3.3 前端部分

3.3.1 登录的前端页面

效果图如下:

590ab98b669573143d83c1d8cb4b76fd.png

代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>登录</title><style>form{max-width: 400px;height: 300px;background-color: rgba(247, 247, 247, 0.7);border: 1 solid #E4E4E4;margin: 100px auto;color: black;border-radius: 5px;padding: 25px 45px;}body{background-repeat: no-repeat;background-image: url(xingkong.png);background-size: 100%;}div{width: 100%;height: 35px;line-height: 35px;margin-top: 50px;position: relative;}input{position: absolute;right: 80px;width: 60%;height: 25px;line-height: 25px;border: 1px solid #DADADA;color: #888;outline: none;font-size: 12px;padding: 3px 3px 3px 5px;box-shadow: inset 0 1px 4px #ECECEC;}input[type="submit"]{width: 50%;height: 40px;line-height: 15px;font-size: 15px;background-color: #b5ccf3;border: none;box-shadow: none;border-radius: 10px;color: #FFF;position: relative;top: 50px;left: 50%;transform: translateX(-50%);}input[type="submit"]:hover{cursor: pointer;                          /*手型*/background-color: rgb(139, 205, 246);}a{width: 180px;display: block;margin: 80px auto;}</style>
</head>
<body><form action="./login.php" method="post"><div><label for="name">用户名:</label><input type="text" id="name" name="name" placeholder="请输入用户名" required></div><div><label for="pass">密 &nbsp;&nbsp;&nbsp; 码:</label><input type="password" name="pass" id="pass" placeholder="请输入密码" required></div><input type="submit" name="login" value="登录"><a href="register.html">还没有账号,注册一个</a></form>
</body>
</html>

代码解释:

  • 因为实现的简单的页面,直接在当前头文件编写CSS代码就好了
  • 建立一个form表单,用于提交数据进行验证
  • action 提交的地址,提交到 login.php 中进行登录的验证,以 post 的方式发送数据
  • 用户名和密码输入框中都添加了required 属性,设置该字段不能为空(如下图)
  • 给登录按钮设置标识“login”,方便后面获取

dd30635ed18b072dde32abab532e29d2.png

写完登录的前端代码之后,在网页中输入如下代码即可进入该页面(如上图登录页面)

http://localhost/re_login/register.html
3.3.2注册的前端页面

效果图如下:

ef4becefde9904ff806fd93c8515ca04.png

代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>注册</title><style>form{max-width: 400px;height: 350px;background-color: rgba(247, 247, 247, 0.7);border: 1 solid #E4E4E4;margin: 100px auto;color: black;border-radius: 5px;padding: 25px 45px;}body{background-repeat: no-repeat;background-image: url(xingkong.png);background-size: 100%;}div{width: 100%;height: 35px;line-height: 35px;margin-top: 20px;position: relative;}input{position: absolute;right: 80px;width: 60%;height: 25px;line-height: 25px;border: 1px solid #DADADA;color: #888;outline: none;font-size: 12px;padding: 3px 3px 3px 5px;box-shadow: inset 0 1px 4px #ECECEC;}input[type="submit"]{width: 50%;height: 40px;line-height: 15px;font-size: 15px;background-color: #b5ccf3;border: none;box-shadow: none;border-radius: 10px;color: #FFF;position: relative;top: 50px;left: 50%;transform: translateX(-50%);}input[type="submit"]:hover{cursor: pointer;                          /*手型*/background-color: rgb(139, 205, 246);}a{width: 180px;display: block;margin: 80px auto;}</style>
</head>
<body><form action="register.php" method="post" novalidate><div><label for="name">用户名:</label><input type="text" id="name" name="name" placeholder="请输入用户名" required></div><div><label for="pass">密 &nbsp;&nbsp;&nbsp; 码:</label><input type="password" name="pass" id="pass" placeholder="请输入密码" required></div><div><label for="qpass">密 &nbsp;&nbsp;&nbsp; 码:</label><input type="password" name="qpass" id="qpass" placeholder="请输入密码" required></div><div><label for="email">邮&nbsp;&nbsp;&nbsp;箱</label><input type="email" id="email" name="email" placeholder="请输入邮箱" pattern="[^@]*@[^@]*[.com$]" required></div><input type="submit" name="reg" value="注册"><a href="./index.html">已经有账号了,去登录</a></form>
</body>
</html>

代码解释:

和登录页面差不多,就是多了确认密码和邮箱这两个输入框以及一些其他区别

  • 与登录页面不同的是,在注册的 from 表单中,加了novalidate 属性,该属性是去掉 from 表单自带的验证功能,防止数据卡在前端到不了后端进行验证
  • 表单提交的地址是register.php ,在该文件中编写代码对注册的数据进一步验证,以及把能正确注册的用户数据保存到数据库中,方便在登录时进行数据验证
  • 其他基本与登录的代码含义大差不差

pattern 是自己写的验证规则,中括号中写正则表达式。pattern=“[@]*@[@]*[.com$]” 对邮箱的验证写规则,@符号的前后不能再出现@符号,而且必须以.com 为后缀,当然验证规则可以自己写,改一下正则表达式即可。

写完登录的前端代码之后,在网页中输入如下代码即可进入该页面(如上图登录页面)

http://localhost/re_login/register.html

也可以点击 “还没有账号,注册一个” 这个超链接实现注册页面的跳转。

3.4 验证注册的数据

3.4.1 设置验证规则

到这里,我们就开始编写 php 代码了。在register.php 中编写 php 代码。

首先,我们把注册时传动过来的数据进行验证,注册时有用户名、密码、确认密码、邮箱这四个数据,可以使用 if 来进行规则验证。

(1)、注册时的**用户名不能为空,**可使用函数 empty()来检验数据是否为空。如果为空,则函数返回为真,if 语句成立,代表着用户名为空,则输入提示信息并且让程序结束掉、

$_POST 是预定义的变量,用于收集来自 method=“post” 的表单中的值。

        if(empty($_POST["name"])){die("用户名不能为空!");}

0948042b3ff1dd13212dc64f08110c7f.png

跳转到register.php 文件去执行,输入提示信息

44c91bac18d180cf843a71b2aa6f8106.png

(2)、注册时的密码不能为小于6位数(可自行设定)。

if(strlen($_POST["pass"]) < 6){die("密码不能小于6位!!");}

验证和用户名基本一致

(3)、验证两次密码输入是否一样。把 post 过来的数据进行 逻辑判断

if($_POST["pass"] !== $_POST["qpass"]){die("两次输入的密码不一致!");}

(4)、验证邮箱的有效性

if(!filter_var($_POST["email"],FILTER_VALIDATE_EMAIL)){die("请输入有效的邮箱格式!");}

filter_var() 函数通过指定的过滤器过滤一个变量。第一个参数是规定要过滤的变量,第二个参数是规定要使用的过滤器的 ID。FILTER_VALIDATE_EMAIL是把值作为 e-mail 地址来验证。如果函数返回真则是有效的email地址,验证通过

(5)、保护密码

$pass_hash=password_hash($_POST["pass"],PASSWORD_DEFAULT);

password_hash 函数是对密码进行加密的函数,形成一串没有规律、杂乱的字符串,保证了用户信息的安全性。PASSWORD_DEFAULT是一种加密规则。返回来的字符串用一个变量保存起来,方便后面传到数据库中

下图就是注册后,密码加密后显示的字符串

3d994a52a00d6bea9df30f6407f08560.png

38323fb31b0dd89845a3cb7c4ecedc29.png

3.4.2 phpMyAdmin 管理数据库

使用数据库管理工具 phpMyAdmin 工具管理数据库。首先在 PHP 集成包中下载 phpMyAdmin 工具

d94154b7cdcce9a42efa0ea12471bd33.png

安装位置一般选择在 WWW 文件下。然后点击管理,就会跳出要登录的页面,用户名和密码默认是 root 就可以直接登录了。当然也可以修改密码,在数据库一栏中,点击修改密码再输入新密码即可

27bd69326b44b6f9e70bee8eccbd9479.png

进入到数据库管理页面后,新建一个数据库,名字自拟,然后在该数据中新建一张表,用来存放用户注册的信息。然后点击右下角的保存即可

9af4606bc63aee1e0cd767adceaa0708.png

3.4.3 PHP 连接数据库

编写 PHP 代码来连接数据库

$mysqli = new mysqli("localhost","root","root","lo_db");if($mysqli->connect_error){die("数据库连接错误:". $mysqli->connect_error);}

实例化一个数据库对象;localhost 为本地服务器上的数据库,第一个 root 是用户名,第二个 root 是密码,lo_db 是要连接的数据库名

mysqli->connect_error是一个在 PHP 中使用对象范式的方式来检查 MySQLi 数据库连接时是否发生错误的函数。使用 if 语句来判断,返回值为假的话说明连接数据库失败,打印连接失败的原因(保证用户名和密码以及数据库名的正确性)

数据库连接成功后,还不能把信息往数据表里面存放。

3.4.4 保存注册的数据到数据库中
$name = $_POST["name"];
$mail = $_POST["email"];if(isset($_POST["reg"])){$sql = "INSERT INTO tuser (name,email,pass_hash) VALUES ('$name','$mail','$pass_hash')";$mysqli->query($sql);if($mysqli->affected_rows > 0){echo "<script>alert('注册成功!');history.go(-1);</script>";}}
  • 声明两个变量用来保存用户名和密码,接着检测用户是否点击了注册这个按钮,如果点击的话就把能成功注册的数据传到数据表中。
  • **isset()**函数用于检测变量是否已设置并且非 NULL。
  • sql 变量用来保存用户的信息,接着是 SQL 语句,向指定表(tuser)中添加对应的值
  • m y s q l i − > q u e r y ( mysqli->query( mysqli>query(sql) 执行 SQL 语句
  • 用 affected_row 来判断是否新增了数据行,新增的话则表示注册成功,数据也成功存放到数据表中,并打印提示信息。

如下图是已经注册过的用户:

4055ecae81cd9ead21179b7cd74fe0d0.png

自此,注册的功能就实现好了。下面是注册功能register.php 的完整代码

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

3.5登录验证

登录功能同样需要连接到数据库。我们直接把在写注册功能时连接数据库的代码拷贝过来即可

$mysqli = new mysqli("localhost","root","root","lo_db");
if($mysqli->connect_error){die("数据库连接错误:". $mysqli->connect_error);
}
$pass_hash=password_hash($_POST["pass"],PASSWORD_DEFAULT);
$name = $_POST["name"];

这里只需要声明两个变量就行,一个用来保存用户名,一个用来保存登录的密码。接着来检查用户是否点击了登录这个按钮,和上面注册的代码差不多,用 if 来判断,如果用户点击了登录这个按钮,就写一个 sql 语句,然后用 query 函数发送数据到数据库中去执行,再用 fetch_assoc 函数返回一个结果集,用一个变量来保存这个结果集,代码如下:

if(isset($_POST["login"])){$sql = "SELECT pass_hash FROM tuser WHERE name='$name'";$res =$mysqli->query($sql)->fetch_assoc();
}

接着来判断返回的这个结果值是否为真,为真则在数据库中找到当前用户输入的用户名在数据库中是否存在,不存在则结束进程,并打印提示信息:“用户不存在”;若输入的用户名存在则进一步判断输入的密码是否正确。我们一下就可以想到可以用 if-else 来进行写

代码如下:

if($res){if(password_verify($_POST["pass"],$res["pass_hash"])){echo "<script>alert('登录成功!') ;window.location.href='xiaomi.html';</script>";}else{echo "<script>alert('密码错误!');history.go(-1);</script>";}}else{echo "<script>alert('用户不存在!');history.go(-1);</script>";}

password_verify(KaTeX parse error: Undefined control sequence: \[ at position 7: \_POST\̲[̲"pass"\],res[“pass_hash”)----password_verify() 函数用于验证密码是否和散列值匹配。pass_hash 是我们在注册时把密码变成一个散列值存放在数据库中,password_verify() 函数则用来验证本次输入的密码映射成的散列值和在数据库中密码的散列值是否相等,相同则表示登录成功,跳转到 xiaomi.html 页面(该页面是本人联系HTML+CSS 写的,用来测试登录成功的页面,大家可以放入其他自己写的网页来进行测试)

ps:上面这个 if 语句其实可以放在判断用户是否点击登录按钮的 if 语句中,意思就是要是用户连登录按钮都没点,也没必要验证其他的东西,$res 的值必然为空

下面是完整的登录验证 PHP 代码:

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

546ae7dbbb9af3630b1d00205f46bb10.png

4107aa4b383053f226a2de84b27e9d08.png

ab0023e6a7c2cd161db33891d1a5b644.png

到这里,整个php环境下写登录注册功能的过程就已经结束了,我上传了本篇实例的一些资源包,如果能帮到和我一样的新手小白,我会非常开心!该案例非常适合新手练习,也欢迎大佬们看到错误或者不妥的地方能批评指正。

资源包链接:链接:https://pan.baidu.com/s/1HhW0VV4rU60eiab0UsnYYwpwd=1689
提取码:1689

案例教学参教视频:

【跟师兄做一个注册登录功能~~前端部分-哔哩哔哩】https://b23.tv/CNHvTeT

【跟师兄做一个注册登录功能~~后端部分-哔哩哔哩】https://b23.tv/CYgKSDf

总结

该案例结合了前端+后端+数据库来实现的用户登录和注册功能,利用的是PHP集成包工具来搭建环境,在此环境之下实现。也可以利用 JavaWeb 来实现该功能,当然这比本博客介绍的实现方法偏难,大家可以去尝试一下,今后我也会去学到

我在搭建 PHP 环境的时候出现了很多的错误,一开始尝试不用 phpMyAdmin 来管理数据库,尝试用数据库可视化工具——navicat 来建立数据库,然后在 PHPstudy 中建立数据库,编写php来连接数据库,但是后面遇到了各种各样的错误,什么数据库密码不正确,数据库不存在,还有无法连接数据库(1045-access denied …)、服务名无效等;甚至后面我重装了mysql服务,后面还是觉得用 phpMyAmind 更香,大家遇到什么问题的话多去搜搜,只有去搜了才能解决问题(没解决更焦虑)

最后,每篇一言:世上无难事,只怕有心人。

http://www.dtcms.com/a/525647.html

相关文章:

  • 网站由哪些部分组成部分组成部分惠阳做网站
  • CICD(一)CI/CD概述及GitLab部署和一些Git命令
  • 网站编辑器图书馆网站建设汇报
  • Guacamole实现远程桌面+实时语音(VNC)
  • SpringBoot知识点总结
  • 怎么建立一个网站能够与讯飞云对话wordpress 示例页面 删除
  • “package.xml”和“CMakeLists.txt”配置
  • 电子元器件网站建设网站案例代码
  • 照片后期网站博客网站做啥好
  • Docker监控系统中添加NodeExporter
  • 2025,数字化转型浪潮中的技术新航标
  • 免费建网站视频教程建网站价格网
  • 海北公司网站建设价格低山西疾控最新通告今天
  • 给企业做网站多少钱韩都衣舍网站建设ppt
  • 叫外包公司做网站不肯给源代码的wordpress内容折叠
  • 深圳3d网站建设平面设计教程视频全集免费
  • 阿里巴巴做网站费用计入wordpress ftp连接不上
  • 网站架构建设网站模板 带手机端
  • 什么网站可做浏览器首页网站建设专业平台
  • 威海哪里做网站产品展示网站含后台网站模板下载
  • 模型转换和边缘计算中至关重要的概念:​​归一化​​ 和​​量化策略​​
  • 怎么把自己做的网站发布出去设计中国第一架飞机
  • 2025年江西省职业院校技能大赛“大数据应用开发“竞赛样题第二套
  • 做美团旅游网站多少钱移动互联网服务管理中心官网
  • 织梦网站密码网站怎么自己做优化
  • 怎么给新网站做推广企业网站设计与实现论文
  • 网站建设项目环境影响评价目录网络推广方案最新
  • 提供邯郸wap网站建设前端开发工程师怎么考
  • 自己基于golang写的MongoRest单文件的 RESTful API 网关,直接通过mongodb发布rest,crub聚合简单的很-于大爷工具集
  • 【机器学习】贝叶斯算法原理与应用