【发布时间】:2014-08-15 12:44:48
【问题描述】:
我已经用必要的数据库表和 php 创建了一个用户认证系统。
在我第一次登录之前(在创建任何 SESSION 之前)每个页面上的重定向都可以完美运行(即,如果未登录,则重定向到登录页面)。
但是,一旦我以用户身份登录然后注销,同样不起作用。我认为不结束 SESSION 可能是个问题(如果错了,请见谅)
这是每个页面中的一些代码
登录 PHP
<?php
session_start();
$message="";
if(count($_POST)>0)
{
include('config.php');
echo $_POST['username'];
$result = mysql_query("SELECT * FROM members WHERE username='" . $_POST["username"] . "' and password = '". $_POST["password"]."'");
$row = mysql_fetch_array($result);
if(is_array($row))
{
$_SESSION["id"] = $row[ID];
$_SESSION["username"] = $row[username];
$_SESSION["password"] = $row[password];
$_SESSION["mname"] = $row[mname];
$_SESSION["fname"] = $row[fname];
date_default_timezone_set("Asia/Calcutta");
$lastlog=date("d/m/Y");
$logtime=date("h:i a");
$query = "UPDATE `members` SET `lastlogin`='$lastlog',`logintime`='$logtime' WHERE `ID`='$row[ID]'";
mysql_query($query);
$_SESSION['logged'] = TRUE;
}
else
{
echo "<SCRIPT>
alert('Wrong Username/Password or Awaiting Approval');
</SCRIPT>";
header("Location:login_failed.html");
}
}
if(isset($_SESSION["id"])) {
header("Location:member/myprofile.php");
}
?>
每一页都有PHP代码
<?php
session_start();
include('config.php');
if(!$_SESSION['logged'])
{
header("Location: ../login.html");
exit;
} ?>
最后退出
<?php
session_start();
unset($_SESSION["id"]);
unset($_SESSION["username"]);
unset($_SESSION["password"]);
unset($_SESSION["mname"]);
unset($_SESSION["fname"]);
header("Location:../login.html");
?>
我的代码有什么问题吗?我错过了什么吗?我做错了。请帮忙
谢谢大家解决了..
现在你能告诉我如何在用户登录(会话存在)的情况下将 login.php 重定向到用户主页(myprofile.php) - 比如 facebook、gmail 等
【问题讨论】:
-
session_destroy();