【发布时间】:2014-09-05 14:54:59
【问题描述】:
下面是我使用 SESSION 功能的 PHP 例程。我有三个名为 login.php、homepage.php、logout.php 的网页。 当我在 login.php 页面中输入正确的密码和用户名时,它会将我重定向到 homepage.php。在 homepage.php 中,它包含一个注销链接。当我单击该注销链接时,它会将我重定向到 login.php。这些功能绝对符合我的预期。但我现在的问题是当我单独打开 homepage.php 时,它应该将我重定向到 login.php。但它会打开 homepage.php。我需要 homepage.php 的确切条件,以便在 login.php 中提交正确数据时仅打开 homepage.php。否则,当我直接打开 homepage.php 时,它应该将我重定向到 login.php。但主要是我不需要销毁会话,但我可以将会话值清空为
$_SESSION['sumthing'] == '';
希望你能理解我的问题。提前致谢。
登录页面
<?php
include("includes/config.php");
if ($_POST['frmSubmit']) {
$strUserData = doSelectUserDetails($_POST);
if($strUserData) {
$_SESSION['SESS_UserId'] = $strUserData['user_id'];
$_SESSION['SESS_UserName'] = $strUserData['user_name'];
session_write_close();
header('Location: homepage.php');
} else {
$strMessage = 'User Name or Password is Incorrect!';
$strClass = 'Error';
}
}
?>
首页
<?php
include("includes/config.php");
if((!isset($_SESSION['SESS_UserId'])) || (($_SESSION['SESS_UserId']) == '')) {
header("location: login.php");
exit;
}
?>
退出
<?php
$_SESSION['SESS_UserName'] == '';
$_SESSION['SESS_UserId'] == '';
header("location: login.php");
exit();
?>
功能
function doSelectUserDetails($objArray)
{
$sqlSelect = "SELECT * FROM tbl_userdata WHERE user_name = '".$objArray['frmUserName']."' AND user_password = '".$objArray['frmPassword']."' ";
$strValues = SelectQry($sqlSelect);
return $strValues[0];
}
【问题讨论】: