【问题标题】:Using isset() for user verification使用 isset() 进行用户验证
【发布时间】: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')
  • &lt;button onclick = "&lt;?php session_destroy(); ?&gt;" 什么?你把 PHP 和 JavaScript 混淆了
  • 不能在客户端调用 PHP 函数。每次脚本运行时,您都会调用session_destroy(),而不仅仅是在用户单击注销按钮时。
  • 您从未在此代码中设置$_SESSION['username']
  • 我没有找到你的mysql代码。你为什么用mysql标记它?这是一个 php 会话问题

标签: javascript php html session


【解决方案1】:

什么是后端和前端请看他们。 如果你很好理解它们,你不能使用下面的代码

错了


<button onclick="<?php session_destroy(); ?>logout </button>

当窗口加载时,所有会话都会被破坏! 你应该如下代码

注销.php


session_destroy();

header('location:'.$_SERVER['HTTP_REFERER']);

你的按钮代码

<button  onclick="logout()">logout</button>

注销功能的js代码


function logout()
{
  window.location.href="logout.php";

}

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 2010-10-02
    • 2014-02-07
    • 2020-11-19
    • 2014-06-11
    • 2016-04-13
    • 2013-11-02
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多