源码可运行-PHP注册登录源码,PHP实现登陆后才能访问页面

最近有一个项目需要实现会员注册和页面登陆后才能访问,所以简单的HTML是无法实现的,就必须通过PHP、html和Mysql来实现,先给大家看一下登录和注册页的效果图。(注册完成后会自动跳转到登录窗口,即使A用户登陆后分享了网址,B用户也必须要先登陆后才能浏览)
在这里插入图片描述

程序是100%可以运营跑通的,下面我直接附上源码(CSS为非核心代码,代码比较长,你也可以自行修改。如果想完全复用我的,也可以私我):

如果完全复用代码,需要在mysql中新建数据库(aaaaa),密码为aaaaa,数据中新建表dlcs,表中有username、password。

一、登录源码

HTML前端登录样式

login.html文件

<!DOCTYPE html>
<html lang="zh-CN">
<head><title>焰遐云会员管理系统平台</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css"><link rel="stylesheet" type="text/css" href="css/util.css"><link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body><div class="limiter"><div class="container-login100"><div class="wrap-login100"><div class="login100-form-title" style="background-image: url(images/bg-01.jpg);"><span class="login100-form-title-1">会员登录</span></div><form class="login100-form validate-form" action="login.php" method="post"><div class="wrap-input100 validate-input m-b-26" data-validate="用户名不能为空"><span class="label-input100">账号</span><input class="input100" type="text" name="username" placeholder="请输入账号"><span class="focus-input100"></span></div><div class="wrap-input100 validate-input m-b-18" data-validate="密码不能为空"><span class="label-input100">密码</span><input class="input100" type="password" name="password" placeholder="请输入密码"><span class="focus-input100"></span></div><div class="flex-sb-m w-full p-b-30"><div class="contact100-form-checkbox"><input class="input-checkbox100" id="ckb1" type="checkbox" name="remember-me"><label class="label-checkbox100" for="ckb1" type="checkbox" name="remember" value="yes">7天内自动登录</label></div><div><a href="javascript:" class="txt1">没有账号?立即注册</a></div></div><div class="container-login100-form-btn"><input class="login100-form-btn" type="submit" name="login" value="提交"></div></form></div></div></div><script src="js/jquery-3.2.1.min.js"></script><script src="js/main.js"></script>
<style>
.copyrights{text-indent:-9999px;height:0;line-height:0;font-size:0;overflow:hidden;}
</style>
</body></html>

login.php文件

<?php
// 告知浏览器我们是html,解码用utf-8,header()表示向客户端发送一个原始的http包头header('Content-type:text/html; charset=utf-8');// 开启Session,返回一个bool值// Session表示存储关于用户会话(session)的信息session_start();// 处理用户登录信息// $_POST[]的变量应该是请求的html页面中,通过‘name’被复制的变量if (isset($_POST['login'])) {# 接受用户的登录消息,trim去掉字符串中的空格$username = trim($_POST['username']);$password = trim($_POST['password']);// 判断提交的登录信息if (($username == '') || ($password == '')) {// 若为空,视为未填写,提示错误,并3秒后返回登录界面header('refresh:3; url=login.html');echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";exit;} // 连接数据库$link = mysqli_connect('127.0.0.1','aaaaa','lixiang123456','aaaaa');// 验证数据库的连接状态$query=mysqli_query($link,"SELECT username,password FROM dlcs WHERE username = '$username'");$row = mysqli_fetch_array($query);if (!$row) {header('refresh:3; url=login.html');echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";exit;} else {# 用户名和密码都正确,将用户信息存储到Session中$_SESSION['username'] = $username;$_SESSION['islogin'] = 1;// 若勾选7天内自动登录,则将其保存到Cookie并设置保留7天if ($_POST['remember'] == "yes") {setcookie('username', $username, time()+7*24*60*60);setcookie('code', md5($username.md5($password)), time()+7*24*60*60);} else {// 没有勾选则删除Cookiesetcookie('username', '', time()-999);setcookie('code', '', time()-999);}// 处理完附加项后跳转到登录成功的首页header('location:weizhuang.php');}}
?>

HTML前端注册样式

zhuce.html文件

<!DOCTYPE html>
<html lang="zh-CN">
<head><title>焰遐云会员管理后台</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css"><link rel="stylesheet" type="text/css" href="css/util.css"><link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body><div class="limiter"><div class="container-login100"><div class="wrap-login100"><div class="login100-form-title" style="background-image: url(images/bg-01.jpg);"><span class="login100-form-title-1">会员管理系统</span></div><form class="login100-form validate-form" action="zhuce.php" method="get"><div class="wrap-input100 validate-input m-b-26" data-validate="用户名不能为空"><span class="label-input100">账号</span><input class="input100" type="text" name="username" placeholder="请输入账号"><span class="focus-input100"></span></div><div class="wrap-input100 validate-input m-b-18" data-validate="密码不能为空"><span class="label-input100">密码</span><input class="input100" type="password" name="password" placeholder="请输入密码"><span class="focus-input100"></span></div><div class="container-login100-form-btn"><input class="login100-form-btn" type="submit" name="zhuce" value="立即注册"></div></form></div></div></div><script src="js/jquery-3.2.1.min.js"></script><script src="js/main.js"></script>
<style>
.copyrights{text-indent:-9999px;height:0;line-height:0;font-size:0;overflow:hidden;}
</style>
</body></html>

zhuce.php文件

<meta charset="UTF-8">
<?php
$username = 'aaaaa';
$password = 'lixiang123456';
$ip = '127.0.0.1';
$database = 'aaaaa';
$conn = new mysqli($ip,$username,$password,$database);
$logname = $_GET['username'];
$password = $_GET['password'];$sql = "select * from dlcs where username = '$logname';";
$res = mysqli_query($conn,$sql);if($res->num_rows > 0){echo '用户已存在,3秒后跳转,请重新输入。';header('Refresh:3,houtai.html');
}else{$sql = "insert into dlcs value('$logname','$password');";if(mysqli_query($conn,$sql)){echo'注册成功,3秒后返回登录页面。';header('Refresh:3,login.html');}else{echo'注册失败。';}}
?>

前端注销样式

logout.php文件

<?php 
header('Content-type:text/html; charset=utf-8');
// 注销后的操作
session_start();
// 清除Session
$username = $_SESSION['username'];  //用于后面的提示信息
$_SESSION = array();
session_destroy();// 清除Cookie
setcookie('username', '', time()-99);
setcookie('code', '', time()-99);// 提示信息
echo "欢迎下次光临, ".$username.'<br>';
echo "<a href='login.html'>重新登录</a>";?>

必须登陆后才能访问:
在需要登陆后才能访问的页面增加该文件即可:


<?php 
header('Content-type:text/html; charset=utf-8');
// 开启Session
session_start();// 首先判断Cookie是否有记住了用户信息
if (isset($_COOKIE['username'])) {
# 若记住了用户信息,则直接传给Session
$_SESSION['username'] = $_COOKIE['username'];
$_SESSION['islogin'] = 1;
}
if (isset($_SESSION['islogin'])){
} else exit("<script language='javascript'>window.location.href='./login.html';</script>");
?>``

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能测试常见面试问题和答案

一、有没有做过性能测试&#xff0c;具体怎么做的 性能测试是有做过的&#xff0c;不过我们那个项目的性能做得不多&#xff0c;公司要求也不严格。一般SE 给我们相关的性能需求&#xff0c;首先我们需要对性能需求进行场景分析与设计&#xff0c;这里&#xff0c;其实主要就是…

二百七十八、ClickHouse——将本月第一天所在的那一周视为第一周,无论它是从周几开始的,查询某个日期是本月第几周

一、目的 ClickHouse指标表中有个字段week_of_month&#xff0c;含义是这条数据属于本月第几周。 而且将本月第一天所在的那一周视为第一周&#xff0c;无论它是从周几开始的。比如2024-12-01是周日&#xff0c;即12月第一周。而2024-12-02是周一&#xff0c;即12月第二周 二…

【OCR】——端到端文字识别GOT-OCR2.0不香嘛?

代码&#xff1a;https://github.com/Ucas-HaoranWei/GOT-OCR2.0?tabreadme-ov-file 在线demo&#xff1a;https://huggingface.co/spaces/stepfun-ai/GOT_official_online_demo 0.前言 最早做ocr的时候&#xff0c;就在想如何能做一个端到端的模型&#xff0c;就不用先检测再…

AndroidStudio-常见界面控件

一、Button package com.example.review01import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextViewclass Review01Activity : AppCompatActivity() {override fun onCreate(savedInstanceStat…

网络安全中的 SOC 是什么?

当今世界&#xff0c;网络威胁日益增多&#xff0c;确保网络安全已成为各种规模企业的首要任务。网络安全讨论中经常出现的一个术语是 SOC&#xff0c;即安全运营中心的缩写。但网络安全中的 SOC 是什么呢&#xff1f; SOC在防御网络威胁、管理安全事件和全天候监控系统方面发…

智选球员:运用动态规划提升棒球队的签约效益

目录 一、签约棒球自由球员 二、分析和理解 &#xff08;一&#xff09;问题背景回顾 &#xff08;二&#xff09;目标确定 &#xff08;三&#xff09;约束条件分析 &#xff08;四&#xff09;明确输出要求 三、动态规划&#xff08;Dynamic Programming&#xff09;解…

Lua面向对象实现

Lua中的面向对象是通过表&#xff08;table&#xff09;来模拟类实现的&#xff0c;通过setmetatable(table,metatable)方法&#xff0c;将一个表设置为当前表的元表&#xff0c;之后在调用当前表没有的方法或者键时&#xff0c;会再查询元表中的方法和键&#xff0c;以此来实现…

航空美食新升级,光明肉业携手东航食品打造经典辣肉面新篇章

在航空餐饮日益注重品质与创新的大环境下&#xff0c;各大航空公司纷纷在美食领域下功夫&#xff0c;力求为乘客提供更加多元化、高品质的餐饮体验。近日&#xff0c;东航那碗面再次成为行业焦点&#xff0c;其经典辣肉面在光明肉业的助力下实现了“创新”升级&#xff0c;为乘…

在.NET 6中使用Serilog收集日志

此示例的完整详细信息&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库&#xff0c;它提供对文件、控制台和其他几个地方的记录。它易于配置&#xff0c;并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…

STM32 HAL库开发学习5. 系统滴答定时器

STM32 HAL库开发学习5. 系统滴答定时器 一、滴答定时器概述1. 概述2. 时钟源3. 寄存器&#xff08;1&#xff09;控制与状态寄存器 STK_CTRL&#xff08;2&#xff09;重载寄存器 STK_LOAD&#xff08;3&#xff09;当前值寄存器 STK_VAL 二、HAL库滴答定时器初始化三、SysTick…

智慧零售时代传统供应链的痛点与数字化变革:定制开发 AI 智能名片 S2B2C 商城系统的应用与影响

摘要&#xff1a;本文深入探讨了智慧零售时代传统供应链所面临的痛点&#xff0c;分析了在该时代背景下打通线上线下渠道以及整合资源的关键需求。阐述了传统零售供应链若线上线下渠道独立、数据不流通将导致的库存管理与物流效率问题&#xff0c;并强调其必须进行数字化变革以…

关系型数据库(RDBMS)和非关系型数据库(NoSQL)

关系型数据库擅长处理复杂关系和事务&#xff0c;而非关系型数据库更适合高并发、分布式存储和灵活的非结构化数据场景。 1. 请简单阐述一下关系型数据库和非关系型数据库的定义。 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a; 是一种基于表结构的数据存储系统&…

Result Maps collection already contains key, IDEA可以运行,打成JAR包就报错了

Spring Boot 3.3.3, mybatis 3.0.3. 遍寻全网&#xff0c;最后发现&#xff0c;是有一处代码的classpath路径问题. 原先的写法&#xff1a; bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:**/sqlmapdict/*.xml"…

C#中图片的Base64编码与解码转换详解

在C#中&#xff0c;我们可以使用Base64编码将图片转换为字符串&#xff0c;也可以将Base64编码的字符串转换回图片。这通常用于在需要文本表示图像数据的场合&#xff08;例如在Web开发中传输图像数据&#xff09;。 将图片转换为Base64字符串 要将图片文件转换为Base64字符串…

国家信息中心单志广:智慧城市转型中的数据要素价值释放

今日&#xff0c;由中国电信集团主办的2024数字科技生态大会数据要素合作论坛在广州市举办。国家发改委国家信息中心信息化和产业发展部主任单志广在论坛发展主旨演讲&#xff1a;智慧城市转型中的数据要素价值释放&#xff0c;主要包括发展新形势、数据新要素、数据新产权、数…

从零开始使用GOT-OCR2.0——多模态OCR项目:微调数据集构建 + 训练(解决训练报错,成功实验微调训练)

在上一篇文章记录了GOT-OCR项目的环境配置和基于官方模型参数的基础使用。环境安装的博文快速链接&#xff1a; 从零开始使用GOT-OCR2.0——多模态通用型OCR&#xff08;非常具有潜力的开源OCR项目&#xff09;&#xff1a;项目环境安装配置 测试使用-CSDN博客 本章在环境配置…

【在Linux世界中追寻伟大的One Piece】读者写者问题与读写锁

目录 1 -> 读者写者问题 1.1 -> 什么是读者写者问题 1.2 -> 读者写者与生产消费者的区别 1.3 -> 如何理解读者写者问题 2 -> 读写锁 2.1 -> 读写锁接口 3 -> 读者优先(Reader-Preference) 4 -> 写者优先(Writer-Preference) 1 -> 读者写者…

基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…

vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式

vxe-table 全键盘操作&#xff0c;按键编辑方式设置&#xff0c;覆盖方式与追加方式&#xff1b; 通过 keyboard-config.editMode 设置按键编辑方式&#xff1b;支持覆盖方式编辑和追加方式编辑 安装 npm install vxe-pc-ui4.3.15 vxe-table4.9.15// ... import VxeUI from v…

反向代理后Request.Url.AbsoluteUri获取成了内网IP

出现的问题&#xff1a;用户请求的是域名&#xff0c;而后端通过Request.Url.AbsoluteUri获取用户请求的绝对路径时&#xff0c;变成了内网IP 解决方式&#xff1a; 反向代理配置中加上&#xff1a; proxy_set_header Host $host; # proxy_set_header Host h o s t : host: h…