首页 > 职业资格  > 

php实现用户登陆简单实例

2022-12-18   来源:万能知识网

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 "重新登录";

?>

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签

用户登陆

推荐词条