PHP:如何让自己的网页拥有登录注册系统

先写一套不含样式的html注册界面:

<html>
<head>
<meta charset="utf-8">
<title>注册</title>
</head>
<body>
	<form action="register.php" method="post">
		<h1>用户注册</h1>
		<label>用户名:</label>
		<input type="text" name="username">
		<label>密码:</label>
		<input type="password" name="userPwd">
		<label>确认密码:</label>
		<input type="password" name="reuserPwd">
		<label>编号:</label>
		<input type="text" name="code"> 
		<input type="submit" value="register">
	</form>
</body>
</html>

然后写PHP,命名为register.php:

<?php
header('Content-Type: text/html; charset=utf-8');
$username1 = $_POST['username'];
$userPwd1 = $_POST['userPwd'];
$reuserPwd1 = $_POST['reuserPwd'];
$code1 = $_POST['code'];
//!!接下来四个变量填写自己的数据库信息:
    $servername = "localhost";
	$username = "root";
	$password = "root";
	$dbname = "test";
//连接数据库:
	$conn = new mysqli($servername, $username, $password, $dbname);
//检测连接:
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
$searchName = "select * from user where username='$username1'";
$searchNameResult = $conn->query($searchName);
$row = $searchNameResult->fetch_row();
$sql="insert into user values(null,'".$username1."','".$userPwd1."','".$code1."')";
if ($username1 == "" or $userPwd1 == ""){
    echo '<script>alert("账号或密码不能留空");history.go(-1);</script>';
}
else if ($userPwd1 != $reuserPwd1){
    echo '<script>alert("你两次输入的密码不一致");history.go(-1);</script>';
}
else if ($row > 0){
    echo '<script>alert("已有人使用该账户名,请更换一个名字");history.go(-1);</script>';
}
else if ($conn->query($sql) === TRUE) {
    echo '<script>alert("用户注册成功");</script>';
    header("Refresh:0;url=index.html");
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>

接着我们再写一套html登录界面:

<html>
<head>
<meta charset="utf-8">
<title>登录</title>
</head>
<body>
	<form action="login.php" method="post">
		<h1>用户登陆</h1>
		<label>用户名:</label>
		<input type="text" name="username">
		<label>密码:</label>
		<input type="password" name="userPwd">
		<input type="submit" value="login">
	</form>
</body>
</html>

然后写PHP,命名为login.php:

<?php
header('Content-Type: text/html; charset=utf-8');
$username1 = $_POST['username'];
$userPwd = $_POST['userPwd'];
//2、
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test";
//!!接下来四个变量填写自己的数据库信息:
$conn = new mysqli($servername,$username,$password,$dbname);
//检测连接:
if ($conn->connect_error){
    die("连接失败".$conn->connect_error);
}
//检查数据库:
$sql = "select userPwd from user where username='".$username1."'";
$allSql = "select * from user where username='".$username1."'";
$result = $conn->query($sql);
$allResult = $conn->query($allSql);
if ($username1 == "" or $userPwd == ""){
    echo '<script>alert("账号或密码不能留空");history.go(-1);</script>';
}
else if($result->num_rows > 0){
    $row = $result->fetch_row();
    $db_userpwd = $row[0];
    if($db_userpwd==$userPwd){
        echo '欢迎用户'.$username1.'登录';
    }else{
        echo '<script>alert("账号或密码错误"); history.go(-1);</script>';
    }
}else {
    echo '<script>alert("用户不存在"); history.go(-1);</script>';
}
$conn->close();
?>

只要稍稍加入css和js样式与代码,就可以达到这样的效果(随着时间而变化的登录注册界面):界面部分信息敏感,已打马赛克。
在这里插入图片描述
(2021/9/16更新)
请添加图片描述

(更新(背景会无限缓缓移动))
请添加图片描述
在这里插入图片描述

  • 26
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
网站是基于PHPmysql数据库架设 网站功能介绍: 一.登陆界面 1.用户登录:网页打开出现用户登录界面,如果已拥有帐号可进行用户登录操作 2.用户注册:在没有帐号的情况下可点击'立即注册'进入注册页面,按说明填写后便可注册成功,如果注册失败系统会提示出错的地 方 3.忘记密码:在忘记密码的情况下可根据用户名和E-MAIL地址提示用户注册时的安全问题,如正确回答问题便可找回密码 二.主页面 主页面进入后左侧显示连接,右侧页面显示最新发布的5条新闻和最新上传的5张照片,点击'更多'便能查看全部内容,内容实现分页功能 1.新闻系统:新闻分为添加和管理,添加新闻时可以添加图片,管理则可对新闻进行修改和删除,修改新闻能对其图片进行修改,并把原有图片删除 2.图片系统:图片分为添加和管理,添加图片时可以点击'预览',在网页下方生成该图片的预览效果,方便用户查看,管理则可对图片进行修改和删除,修改只能改图片的标题和说明,如对图片不满意就直接删除 3.留言板:基于上述两项功能又增加了留言板,其功能与上述两项大同小异,主要也是添加与管理,并具有浏览,能查看用户的留言,按用户留言的时间排序实现分页 /*上述三项功能主要实现对数据的增删改查*/ 4.投票系统:该功能主要是调查用户对本网站的满意程度,并反馈信息以便日后完善 5.友情链接:连接国内热门的门户网站,方便用户转站
商城系统正在进行深度优化!近期推出,模板将按照SEO标准重新制作!深度SEO处理,深度程序优化,删掉或合并部分不合理的地方!增加蜘蛛爬行日志及其他更多功能! 原系统衍生出来依赖默认皮肤的模板可能部分不可用!同时将陆续推出多套免费商城模板!欢迎大家使用. 目前程序存在根据客户反映有些小BUG,但不影响网站整体使用.为此向大家道歉.不建议个人商业使用!近期将推出新版本!最后感谢大家对我们系统的支持和反馈!最后祝大家在新的一年工作愉快! PHP-商城系统是国内领先商城系统产品. 同时也是一个商业的PHP开发框架。PHP-商城系统由内容、文章、会员、留言、订单、财务、广告、邮件订阅,数据库管理、内置支付管理、商品配送管理、无限级分类,全站搜索等多个功能模块插件组成。在当今瞬机万变的市场环境中,快速高效的IT解决方案是您业务成功的关键。 大量AJAX技术,让用户操作更省心方便 大量缓存技术,从而减轻服务器数据库负载 目前市场上权限最全的商城系统(多级管理权限控制,让网站多人维护更轻松) 模块化开发,开发更灵活 Smarty模板引擎,更贴近大众 模板函数自由调用,让模板制作更灵活 无限级分类,自由控制扩展 文章属性自由扩展,更具灵活性 会员注册属性自由扩展 MVC开发模式,模块化开发更方便 程序语言:PHP MYSQL 模板自由卸载安装 大家关心的百度和谷歌搜索引擎录取的问题,我们针对每产品可以SEO优化、便于您的网站在谷歌和百度搜素引擎排名。  【说明】由于静态页面的生成 ,部分模板有改动,V2.0.5一下的模板可能有部分不能使用 或者出现小问题 【特别说明】 APC、eAccelerator、XCache均有可能导致加密后的程序处理不正常,请关闭对应的模块 =============================================================================================================================== 页面重大修改:  会员登录  商品详情(AJAX 回调数据)  购物车 调整  程序重大修改:  缓存重写  模板重写  程序大量优化 =============================================================================================================================== 废弃 后台对IE6的全面支持(包括使用IE6 为内核的浏览器都将不会兼容),若是IE6的用户请尽快升级到IE8 或使用非IE内核的浏览器 废弃 模板函数中的select_db 函数 修复 后台商品规格无法保存的问题 修复 编辑器内容无法出现的问题 修复 全站预付款统计 分页导致的问题 修复 支付宝追加配送费用的问题(多计算了一份配送费用) 修复 FLASH上传 选择要上传的文件后 上传进度条慢的问题 修复 使用文件模式时session不能自动销毁的BUG 默认时间为1800秒 可打开init.php文件修改 修复 一些已知的安全问题 完善 (为支持大数据,重写幻灯片),幻灯片上传时图片文件使用中文出现的错误问题 幻灯片分组细化 完善 后台权限菜单 改进算法 完善 后台查看当前在线用户功能(只有创始人能查看且能强制踢出某个已登录管理员) 完善 创始人修改用户分组权限后 其他登陆用户的权限立即得到修改 完善 文件管理器 完善 短信配置接口 完善 订单处理的逻辑处理 完善 订单的打印处理 完善 后台缓存数据算法 调整 支付方式(从配送方式的 货到付款调整到支付方式里 同时若选择支付方式 则用户提交数据直接跳转到订单中心) 调整 若是蜘蛛爬行不记录访问统计 不记录访问我的浏览历史记录 调整 商品搜索,订单搜索 调整 未登陆状态下且必须要会员登录才能支付的情况下会员登陆后 由直接跳转到会员中心改为跳转到购物车 调整 购物车购买->支付的流程(修改原增加购买商品->填写购货人信息->支付) 到支付页面后若刷新页面将跳转.现调整为只要是用户登录即可看到未支付的订单信息 直接修改即可 调整 原商品阶梯价为商品批发 增加 充值卡功能(网站拥有者可以直接印刷实体卡销售,类似电话卡充值销售) 增加 纯静态生成功能(文章,商品列表,商品详情,地区,品牌),帮助中心,文章中心,地区可单独分配域名使用 增加 订单出货清单 增加 恢复系统默认权限的功能(创始人) 增加 文章详情分页功能 增加 广告后台的搜索,并对地区的支持 增加 上传模板使用密
以下是一个简单的 PHP + MySQL 登录注册网页的示例代码。 index.php: ```php <?php session_start(); if(isset($_SESSION['username'])) { header('Location: home.php'); exit; } ?> <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <?php if(isset($_GET['error'])) { ?> <p style="color: red;"><?php echo $_GET['error']; ?></p> <?php } ?> <form action="login.php" method="POST"> <label>Username:</label> <input type="text" name="username"><br><br> <label>Password:</label> <input type="password" name="password"><br><br> <input type="submit" value="Login"> </form> <br> <a href="register.php">Don't have an account? Register here.</a> </body> </html> ``` register.php: ```php <?php session_start(); if(isset($_SESSION['username'])) { header('Location: home.php'); exit; } ?> <!DOCTYPE html> <html> <head> <title>Register</title> </head> <body> <h1>Register</h1> <?php if(isset($_GET['error'])) { ?> <p style="color: red;"><?php echo $_GET['error']; ?></p> <?php } ?> <form action="register.php" method="POST"> <label>Username:</label> <input type="text" name="username"><br><br> <label>Password:</label> <input type="password" name="password"><br><br> <input type="submit" value="Register"> </form> <br> <a href="index.php">Already have an account? Login here.</a> </body> </html> <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { require_once 'db.php'; $username = mysqli_real_escape_string($conn, $_POST['username']); $password = mysqli_real_escape_string($conn, $_POST['password']); if(empty($username) || empty($password)) { header('Location: register.php?error=All fields are required.'); exit; } $hashed_password = password_hash($password, PASSWORD_DEFAULT); $sql = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')"; if(mysqli_query($conn, $sql)) { header('Location: index.php?success=You have registered successfully. Please login.'); exit; } else { header('Location: register.php?error=Unknown error occurred. Please try again.'); exit; } } ?> ``` login.php: ```php <?php session_start(); if(isset($_SESSION['username'])) { header('Location: home.php'); exit; } ?> <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { require_once 'db.php'; $username = mysqli_real_escape_string($conn, $_POST['username']); $password = mysqli_real_escape_string($conn, $_POST['password']); if(empty($username) || empty($password)) { header('Location: index.php?error=All fields are required.'); exit; } $sql = "SELECT password FROM users WHERE username='$username'"; $result = mysqli_query($conn, $sql); if(mysqli_num_rows($result) > 0) { $row = mysqli_fetch_assoc($result); if(password_verify($password, $row['password'])) { $_SESSION['username'] = $username; header('Location: home.php'); exit; } } header('Location: index.php?error=Invalid username or password.'); exit; } ?> ``` db.php: ```php <?php $conn = mysqli_connect('localhost', 'username', 'password', 'database_name'); if(!$conn) { die('Connection failed: ' . mysqli_connect_error()); } ?> ``` 在这个例子中,我们使用了 PHP 的 `password_hash` 和 `password_verify` 函数来加密和验证密码。加密算法使用了 PHP 7.4 引入的默认算法 `PASSWORD_DEFAULT`。注意,这里的代码仅仅是为了演示基本的登录和注册功能,实际应用中还需要进一步的安全性措施和验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值