【发布时间】:2020-01-15 06:58:49
【问题描述】:
我正在尝试制作一个在页面中显示用户个人资料的主页。我使用 isset 和 session 来检查用户是否登录。我进入主页,但每次刷新它都会让我回到登录页面,即使设置了值。
我尝试过使用
if(empty($username)){
... script to take me back to login
}
<?php
session_start();
$username = $_SESSION['username'];
echo $username;
if(!isset($username))
{
echo "
<script>
window.location.href = 'login.php'; // Prevention of users not logged it to enter
</script>
";
}
else
{
$fname = $_SESSION['fname'];
$lname = $_SESSION['lname'];
$img = $_SESSION['img'];
$name = "$fname $lname";
$prerl = $_SESSION['role'];
if($prerl === "1")
{
$role = "Administrator";
}
else if($prerl === '2')
{
$role = "Manager";
}
else if($prerl === '3')
{
$role = "Cashier";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title> Mamacita • Home </title>
<link rel="stylesheet" type="text/css" href="homeStyle.css">
<meta charset = "utf8">
</head>
<body>
<div class = "home-sidebar-display">
<?php
echo "<image src='$img'></image><br>";
echo "Cashier: $name<br>";
echo "Role: $role<br>";
?>
</div>
<div class = "home-menu-display">
<button onclick = "<?php session_destroy(); ?>"> Logout </button>
</div>
</body>
</html>
即使我刷新页面,我也希望页面位于 home.php 中。有什么想法吗?
【问题讨论】:
-
无需将 JS 注入 PHP 来重定向用户 - 使用
header('Location: /path') -
<button onclick = "<?php session_destroy(); ?>"什么?你把 PHP 和 JavaScript 混淆了 -
不能在客户端调用 PHP 函数。每次脚本运行时,您都会调用
session_destroy(),而不仅仅是在用户单击注销按钮时。 -
您从未在此代码中设置
$_SESSION['username'] -
我没有找到你的mysql代码。你为什么用mysql标记它?这是一个 php 会话问题
标签: javascript php html session