我是php新手,尝试通过会话创建登录页面而不使用数据库,如果用户成功登录,它将被重定向到某个页面“portfolio.php”,然后会话将会15分钟后过期,但如果用户随机输入“portfolio.php”作为url,它将被重定向到登录页面,在用户登录成功后,它只应该重定向到该页面(“portfolio.php”) 这里是我的 “的login.php” 页面代码:使用会话变量的PHP登录页面
<?php
session_start();
include("functions.php");
$message="";
if(count($_POST)>0) {
if($_POST["user_name"] == "admin" and $_POST["password"] == "admin-1") {
$_SESSION["user_id"] = 1001;
$_SESSION["user_name"] = $_POST["user_name"];
$_SESSION['loggedin_time'] = time();
} else {
$message = "Invalid Username or Password!";
}
}
if(isset($_SESSION["user_id"])) {
if(!isLoginSessionExpired()) {
header("Location:portfolio.php");
} else {
header("Location:logout.php?session_expired=1");
}
}
if(isset($_GET["session_expired"])) {
$message = "Login Session is Expired. Please Login Again";
}
?>
portfolio.php代码:
<?php
session_start();
include("functions.php");
if(isset($_SESSION["user_id"])) {
if(isLoginSessionExpired()) {
header("Location:logout.php?session_expired=1");
}
}
?>
funcation.php代码:
<?php
function isLoginSessionExpired() {
$login_session_duration = 10;
$current_time = time();
if(isset($_SESSION['loggedin_time']) and isset($_SESSION["user_id"])){
if(((time() - $_SESSION['loggedin_time']) > $login_session_duration)){
return true;
}
}
return false;
}
?>
在此先感谢。
_“将被重定向到登录页面,而是应该只在用户成功登录后重定向到该页面。“_ - 什么,你希望它只在登录页面重定向_after_ login?这没有什么意义。 – CBroe
你需要更新你的解释,它的混乱。 –
究竟是什么问题?登录表单在哪里?此外,'login.php'中的$ _GET [“session_expired”]行是否是一个错字? – Himal