正确的$ _SESSION身份验证

时间:2013-08-25 01:33:53

标签: php session

验证用户的正确方法是什么?在,设置一个只有登录用户可以查看的页面?

这有用吗?

<?php
session_start();
if(!isset($_SESSION[username]) || empty($_SESSION[username]) || !isset($_SESSION[id]) || empty($_SESSION[id]))
{
session_destroy();
session_unset();
die('You\'re not authorized to view this page!');
}
?>

<?php
echo"Can I freely, and safely write my content here? Will it be properly authenticated with my code above?";
?>

但我的问题是,如果我使用上面的代码,我可以在代码下面自由添加我的内容吗?还有其他更好的方法吗?

我有另一个代码,我做了

session_destroy();
header("Location: logout.php");
{and then I echo my content below; where logged in users can see}

但我只是想知道,一旦我这样做,是否意味着用户将无法在下方看到我的内容?

谢谢!

1 个答案:

答案 0 :(得分:1)

你是对的,但你的策略有点冗长。这是一种更简单的方法。

<?php
session_start();
if(empty($_SESSION['username'])) 
{
  echo "Not allowed."; // possible redirect to login page.
  exit; 
}

//Authenticated stuff here.

要注销,只需清除用户名。

$_SESSION['username'] = "";

通常,您无需担心清理内部PHP会话缓存。 PHP有一个定期脚本,它在服务器的后台运行,以便为您处理。