Php 使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。但最重要的是我不需要破坏会话,但我可以将会话值作为空值 $\会话['sumthing']='' 希望你能理解我的问题。提前谢谢 登录页面Php 使session值为空而不是销毁会话(),php,session,redirect,Php,Session,Redirect,下面是我使用会话功能的PHP例程。我有三个网页,分别是login.php、homepage.php、logout.php。 当我在login.php页面中输入正确的密码和用户名时,它会将我重定向到homepage.php。在homepage.php中,它包含一个注销链接。当我单击注销链接时,它将我重定向到login.php。这些功能完全符合我的预期。但我现在的问题是,当我单独打开homepage.php时,它应该将我重定向到login.php。但它会打开homepage.php。我需要一个确切的
<?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;
}
?>
注意:session_destroy()将重置会话,您将丢失所有存储的会话数据
请改用unset()函数:
if(isset($_SESSION['views'])) {
unset($_SESSION['SESS_UserName']);
unset($_SESSION['SESS_UserId']);
}
主文件:
if((!isset($_SESSION['SESS_UserId'])) || (($_SESSION['SESS_UserId']) == '')) {
header("location: login.php");
exit;
} else echo $_SESSION['SESS_UserName'];
我要做的是检查用户是否有会话。如果他们没有重定向到登录页面:
if (session_status() == PHP_SESSION_NONE) {
header("location: login.php");
}
来源:为logout.php文件取消设置会话变量,如下所示
unset($_SESSION['SESS_UserName']);
unset($_SESSION['SESS_UserId']);
使用unset从$\u会话全局数组中销毁一个会话元素
如果要销毁当前注册的所有会话变量,请使用session_unset()函数。不过,用户可以在不登录的情况下进行会话。e、 去亚马逊,开始购物,然后登录购物。对不起,兄弟,我没有收到你的邮件。我应该在哪里使用这个rotine??如果(isset($_SESSION['views']){unset($_SESSION['SESS_UserName']);unset($_SESSION['SESS_UserId']);}这是结束会话的另一种方法
if (session_status() == PHP_SESSION_NONE) {
header("location: login.php");
}
unset($_SESSION['SESS_UserName']);
unset($_SESSION['SESS_UserId']);