【发布时间】:2011-04-15 18:29:33
【问题描述】:
我正在使用以下技术...
从login.php 表单发布到我执行此操作的页面check.php
<?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");
}
?>
在loggedin.php 页面上我做的第一件事是
<?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
}
?>
但一旦登录,当我直接输入 url localhost\myProject\loggedin.php 时,它会显示页面...这很有意义,因为会话已经开始
我想要实现的是
- 直接 URL\会话在会话终止\过期\超时后工作 10 分钟,然后使用必须再次登录并且可能获得相同的会话 ID,但 10 分钟后使用将无法使用同一会话
我需要做什么或学习什么
【问题讨论】:
-
我知道这是一个非常古老的问题,但这是 Google 中多个会话搜索的最佳结果。阅读本文的任何人都应该知道,问题中的代码非常不安全并且容易受到 SQL 注入的影响。我们不希望任何初学者在谷歌上搜索不良习惯。 :-) 如果您想了解更多信息,关于 SO 的这个问题应该会有所帮助:stackoverflow.com/questions/60174/…
标签: php session session-timeout