日期:2023-02-14 12:31:01 来源:互联网
php实现用户登陆简单实例
(资料图)
最近学习中要使用PHP+MySql实现简单登录注册,看了很多简单案例后发现,并没有人通过PDO实现简单登录注册,要么就是Mysql和MySqli实现,就算实现了意义也不大,js就可以做的事情,没必要放到PHP中去,我却偏偏不相信,保留着一股倔劲,简单的实现了登录注册,下面是小编为大家整理的php实现用户登陆简单实例,欢迎阅读与收藏。
php实现用户登陆简单实例
前言:
最近要完成的最后一个部分,就是对用户提交的数据进行管理,至于管理,那肯定就是管理员的事了,那一定涉及登陆,验证账号权限,账号是否过期等等问题。
所需知识
session,确实是很重要的东西。并且我遇到session不能跨页,修改PHP.ini的session.use_trans_sid = 0值为1。
具体实现
我的后台设计的比较简单,只需输入一个密码即可,这个密码当然是保存在服务器可以更改的啦。所以只需要给session添加两个变量,flag、time。
首先,用flag来确定管理员是否成功登陆,用time确定登陆是否超时。提交密码后,如果正确会给flag赋值为1,time赋值为当前时间。每次进入新的"页面或进行操作时会对这两个变量进行判断,首先判断flag值是否为1,不唯一直接提示未登陆,销毁session,如果为1,再判断当前时间-$_SESSION(‘time")是否小于600(10分钟),若大于,提示登陆超时,销毁session;若小于,允许操作,并更新time变量值为当前值。
部分代码
check_pw.php
?php session_start();
$_SESSION["flag"] = 0;
$myfile = fopen("passwd","r") or die("Unable to open file!");
$passwd = fgets($myfile);
if(empty($_POST["pass"])){
echo "不能为空,重新输入";
$page = "login.html";
}else{
$pass = $_POST["pass"];
$passwd = test_input($passwd);
$pass = test_input($pass);
if($pass == $passwd){
echo "口令正确,允许访问";
$page = "list_all.php";
$_SESSION["flag"] = 1;
$_SESSION["time"] = time(); //当前秒数
}else{
echo "口令错误,重新输入";
$page = "login.html";
}
}
function test_input($date){
$date = trim($date);
$date = stripcslashes($date);
$date = htmlspecialchars($date);
return $date;
}
点此跳转
list_all.php(部分)
?
?php session_start();
if($_SESSION["flag"] == 1){
if(time() - $_SESSION["time"] > 600){
echo "登陆超时";
echo "点此登陆";
session_destroy();
exit();
}else{
$_SESSION["time"] = time();
}
}else{
echo "未登陆,无权访问!";
echo "点此登陆";
session_destroy();
exit();
}
HTML代码(login.html):
7天内自动登录
login.PHP:(登陆处理页)
header("Content-type:text/html; charset=utf-8");
// 开启Session
session_start();
// 处理用户登录信息
if (isset($_POST["login"])) {
# 接收用户的登录信息
$username = trim($_POST["username"]);
$password = trim($_POST["password"]);
// 判断提交的登录信息
if (($username == "") || ($password == "")) {
// 若为空,视为未填写,提示错误,并3秒后返回登录界面
header("refresh:3; url=login.html");
echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
exit;
} elseif (($username != "username") || ($password != "password")) {
# 用户名或密码错误,同空的处理方式
header("refresh:3; url=login.html");
echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
exit;
} elseif (($username = "username") && ($password = "password")) {
# 用户名和密码都正确,将用户信息存到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 {
// 没有勾选则删除Cookie
setcookie("username", "", time()-999);
setcookie("code", "", time()-999);
}
// 处理完附加项后跳转到登录成功的首页
header("location:index.PHP");
}
}
?>
index.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"])) {
// 若已经登录
echo "你好! ".$_SESSION["username"]." ,欢迎来到个人中心!
";
echo "注销";
} else {
// 若没有登录
echo "您还没有登录,请登录";
}
?>
logout.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."
";
echo "重新登录";
?>
标签: php实例
世界焦点!php实现用户登陆简单实例
福建厦门5000元豪华婚宴,16道菜含11道海鲜,琵琶虾东星斑都不缺
世界视讯!美联储仍持鹰派立场 现货黄金窄幅震荡运行
世界热议:拜仁官网介绍巴黎:几乎每个位置都是世界级,胜场数巴黎略优
直角三角形角度计算器软件下载_直角三角形角度计算器-全球速讯
全球通讯!火影忍者521集打三代雷影_火影忍者521
晒干的薄荷叶泡水的功效
送给朋友的生日祝福语男生 全球今亮点
全球速讯:质数有哪些合数有哪些
每日热点:摩根资产管理公司首席策略师:美国经济比看上去更疲软,在未来两年将处于衰退边缘
佛山禅城区港澳通行证自助签注机地址
学生送妈妈什么生日礼物合适
伊力特曲_关于伊力特曲的介绍
沭阳县农业农村局开展春季农资市场检查
钢筋工程量计算表_钢筋工程量计算 世界热点评
从涨18%到跌12%,被MSCI剔除后的海昌海洋公园上演惊魂48H 速读
亚洲实业集团公布与栢锐订立保安服务框架协议
过节送女朋友什么礼物 全球看热讯
狮子座2023年9月爱情运走向 不太顺利沉心静气 环球速读
法国进口红酒品牌有哪些_法国进口红酒品牌到底有哪些 天天快消息
白凤祥来到桥北街道@“麒麟巷” 丰富消费业态 优化消费场景 满足消费需求
今日铁锈战争_铁锈_世界热资讯
女送男的小礼物 热门
原神稻妻送血斛隐藏成就是什么
卖不好因为价格太贵?极氪、蔚来教BBA造中国人喜欢的旅行车