javascript - 为什么我的 $_SESSION['user_login'] 没有更改为 true?
问题描述
在 index.php 中
<?php
session_start();
$_SESSION['user_login'] = false;
}
?>
<li>
<div style="margin-left: 15px ;margin-right:15px ; text-align: center">
<?php
if (!$_SESSION['user_login']){
echo '<a href="View/login.php" class="btnprofile" style="background-image:url(./img/defaullt_profile.jpg)" ></a>';
}
else{
echo '<a href="View/profile.php" class="btnprofile" style="background-image:url(coba.jpg)" ></a>';
}
?>
</div>
</li>
在 login.php 中
看看 $cekrole == 'member'
<?php
include_once '../Dao/UserDaoImpl.php';
include_once '../Entity/USER.php';
include_once '../util/PDOUTIL.php';
session_start();
$loginPressed = filter_input(INPUT_POST, 'btnLogin');
if (isset($loginPressed)) {
$userDao = new UserDaoImpl();
$username = filter_input(INPUT_POST, 'txtUsername');
$password = filter_input(INPUT_POST, 'txtPassword');
$md5Password = md5($password);
$userLogin = new User();
$userLogin->setUsername($username);
$userLogin->setPassword($md5Password);
/* @var $arrResult User */
$arrResult = $userDao->login($userLogin);
$longname = $arrResult['longname'];
$email = $arrResult['email'];
$gender = $arrResult['gender'];
$dateofbirth = $arrResult['dateofbirth'];
$cekrole = $arrResult['role'];
$profile = $arrResult['profile'];
if (isset($arrResult) && !empty($arrResult['name'])) {
if ($cekrole == 'admin') {
$_SESSION['user_login'] = TRUE;
$_SESSION['user_name'] = $arrResult['username'];
header('location:homeadmin.php');
} elseif ($cekrole == 'employee') {
$_SESSION['user_login'] = TRUE;
$_SESSION['user_name'] = $arrResult['username'];
$_SESSION['namauser'] = $username;
header('location:homeemployee.php');
} elseif ($cekrole == 'member') {
$_SESSION['user_login'] = TRUE;
$_SESSION['user_name'] = $arrResult['username'];
$_SESSION['profile'] = $profile;
$_SESSION['longname'] = $longname;
$_SESSION['email'] = $email;
$_SESSION['dateofbirth'] = $dateofbirth;
$_SESSION['gender'] = $gender;
header('location:../index.php');
}
}
else{
$message = 'Id atau Password salah';
echo "<script type='text/javascript'>alert('$message');</script>";
}
}
?>
有人可以帮助我:(,请查看 login.php 并查看角色 == 成员的时间
为什么当登录为 true 并将 session['user_login'] = TRUE 和 header 设置为 index.php,但 index.php 中的 session['user_login'] 仍然 FALSE
对不起我的英语太糟糕了:D
解决方案
<?php
session_start();
if (!isset($_SESSION['user_login'])) { //if session doesn't exist, set user_login to false
$_SESSION['user_login'] = false;
}
?>
因此,当会话尚不存在或用户未登录时,$_SESSION['user_login'] = false
否则 $_SESSION['user_login'] 为真,您可以继续您的工作流程。
推荐阅读
- regex - 用 sed 隔离字符串的一部分
- angular - 从 Angular 8 迁移后的 Angular 9 编译错误
- angular - 前端无法在单独的 docker 容器中到达后端端口
- javascript - 带有实时模型更新的 Extjs 组排序中的错误分组
- at-command - 铱星9603不发我提供的位置
- javascript - 全局变量由函数改变
- swift - Xcode 11.3.1 大括号换行?
- firebase - Firebase Firestore - 带有字段转换(例如增量)的写入操作需要多少成本?
- r - R中加拿大各省的map_data
- elasticsearch - 弹性搜索聚合查询返回 1970 年以来的结果?