私は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
説明を紛らわしく更新する必要があります。 –
問題はなんですか?ログインフォームはどこですか?また、 '$ _GET [" session_expired "]' 'login.php'の行は入力ミスですか? – Himal