tôi đang sử dụng các kỹ thuật sau đây ...PHP - làm phiên hết hạn sau phút X
Từ login.php
Các bài mẫu cho trang check.php
nơi tôi làm điều này
<?php
$uzer = $_POST['user_name'];
$pass = $_POST['user_pass'];
require ('DB_connection.php');
$result = mysql_query("SELECT * FROM accounts WHERE user_Name='$uzer' AND user_Pass='$pass'");
if(mysql_num_rows($result) > 0)
{
$array = mysql_fetch_assoc($result);
session_start();
$_SESSION['user_id'] = $uzer;
header("Location:loggedin.php");
}
else
{
header("Location:login.php");
}
?>
và trên loggedin.php
trang điều đầu tiên tôi làm là
<?php
session_start();
if(!isset($_SESSION['user_id']))
{
header("Location:login.php");
}
else
{
echo ("this session is ". $_SESSION['user_id']);
//show rest of the page and all
}
?>
nhưng sau khi đăng nhập khi tôi trực tiếp nhập url localhost\myProject\loggedin.php
nó sẽ hiển thị trang ... mà làm cho cảm giác hoàn hảo bởi vì phiên đã bắt đầu
những gì tôi muốn thực hiện là
- URL \ phiên trực tiếp làm việc trong 10 phút sau đó phiên chấm dứt \ hết hạn \ timed out và sau đó sử dụng phải đăng nhập một lần nữa và có thể nhận được cùng một id phiên nhưng sau 10 phút sử dụng sẽ không thể để duyệt với cùng một phiên
GÌ tÔI cÓ CẦN làm hoặc tìm hiểu
Xem [Làm cách nào để hết hạn một phiên PHP sau 30 phút?] (Http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes) – Gumbo
Tôi biết đây là một câu hỏi rất cũ, nhưng đây là một kết quả hàng đầu cho một số tìm kiếm phiên trong Google. Bất cứ ai đọc điều này nên lưu ý rằng mã trong câu hỏi là cực kỳ không an toàn và dễ bị SQL injection. Chúng tôi sẽ không muốn bất kỳ người mới bắt đầu Googling để nhận những thói quen xấu. :-) Câu hỏi này về SO sẽ giúp bạn nếu bạn muốn tìm hiểu thêm: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –