如何使用php在注销时删除浏览器的本地存储项
Posted
技术标签:
【中文标题】如何使用php在注销时删除浏览器的本地存储项【英文标题】:How to delete local storage items of browser on logout using php 【发布时间】:2016-10-10 21:14:23 【问题描述】:。
我想在使用 php 注销时删除所有保存的浏览器数据。
因为我只想在每次登录时显示引导警报框,而不是在每次页面刷新时显示。
当用户注销时,它将再次重置。当用户再次登录时,它会显示。
我的代码如下所示
$(document).ready(function()
if (localStorage.getItem('message1') != 'shown')
$('#message1').toggleClass('in');
window.setTimeout(function()
$("#message1").fadeTo(500, 0).slideUp(500, function()
$(this).remove();
);
, 10000);
localStorage.setItem('message1', 'shown')
);
.flyover
margin-right: -400px;
overflow: hidden;
opacity: 0.9;
z-index: 1050;
transition: all 1s ease;
position: fixed;
top: 100px;
right: 20px;
width: 300px;
z-index: 2000;
.flyover.in
margin-right: 10px;
.alert
color: white ! important;
.alert.close
font-size: 18px ! important;
font-weight: 300 ! important;
line-height: 18px ! important;
color: white ! important;
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
</head>
<body>
<div id="message1" class='alert bg-green flyover'><a href='#' class='close close-x' data-dismiss='alert' aria-label='close'><i class="fa fa-times text-white" aria-hidden="true"></i>
</a><strong>Successfully Logged In<br></strong>
<h3>Welcome,
<?php echo ucwords($adminRow['admin_name']); ?>
</h3>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified javascript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
</body>
</html>
【问题讨论】:
为什么不使用会话存储,关闭窗口时清除? 告诉我怎么做。这种方法行得通吗? developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage 我找到了使用 PHP 和 mysql 的简单方法。 【参考方案1】:我的解决方案是在登录页面上添加一个脚本标签
<script type="text/javascript">
localStorage.clear();
</script>
【讨论】:
【参考方案2】:如果要清除登录里面的存储:
$('.logout').click(function()
$.ajax(
type: 'GET',
url: 'logout.php',
data:
id: '123'
,
datatype: 'html',
cache: 'false',
success: function(response)
localStorage.clear();
,
error: function()
);
);
【讨论】:
嗨,在数据中我必须使用什么 id。当我使用这种方法时,我无法注销。我的管理面板。 注销你需要什么参数,你必须传入那个数据块 如何在 logout.php 中获取这些参数 他说“使用 php”那不是 php【参考方案3】:由于 PHP 是一种服务器端语言,您无法使用 PHP 在客户端做任何事情。你需要 javascript 来完成这项工作。你可以用 PHP 做的就是在需要时调用 javascript。
例如,您可以编写 js 代码以重置为您想要的任何内容,并在登录页面 onload 上调用它。因此,每当用户访问登录页面以登录时,您的 js 都会调用。或者,您可以将其绑定到注销按钮上的单击事件。或者,您可以仅将其保留在登录页面中,并在注销时将用户重定向回登录页面,这将调用所需的 js。 如果您需要其他人在他们的答案中发布的代码示例。
【讨论】:
【参考方案4】:在注销上添加script tag
onclick
<a href=" route('logout') "
onclick="event.preventDefault();
document.getElementById('logout-form').submit();
localStorage.clear();"
class="dropdown-item notify-item">
<i class="pe-7s-power"></i>
<span>Logout</span>
</a>
【讨论】:
【参考方案5】:我找到了我的问题的答案,这可以在 PHP 和任何数据库的帮助下轻松完成。
在dashboard.php中写下这段代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dashboard</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<style>
.flyover
margin-right:-400px;
overflow: hidden;
opacity: 0.9;
z-index: 1050;
transition: all 1s ease;
position: fixed;
top: 100px;
right: 20px;
width: 300px;
z-index: 2000;
.flyover.in
margin-right: 10px;
.alert
color: white ! important;
.bg-greenbackground-color: green ! important;
.alert.close
font-size: 18px ! important;
font-weight: 300 ! important;
line-height: 18px ! important;
color: white ! important;
</style>
</head>
<body>
<?php
$message = $adminRow['message'];
if($message == 1)
<div id="message1" class='alert bg-green flyover'><a href='#' class='close close-x' data-dismiss='alert' aria-label='close'><i class="fa fa-times text-white" aria-hidden="true"></i>
</a><strong>Successfully Logged In<br></strong>
<h3>Welcome, <?php echo ucwords($adminRow['admin_name']); ?></h3>
</div>
<?php
$admin_id = $adminRow['admin_id'];
$query = mysql_query("UPDATE admin SET message = '0' WHERE admin_id = '$admin_id'");
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
<script>
$('#message1').toggleClass('in');
window.setTimeout(function()
$("#message1").fadeTo(500, 0).slideUp(500, function()
$(this).remove();
);
, 10000);
</script>
</body>
</html>
在logout.php中写下这段代码
$admin_id = $adminRow['admin_id'];
$query = mysql_query("UPDATE admin SET message = '1' WHERE admin_id = '$admin_id'");
结果:警告框仅在管理员登录时显示。
逻辑:
当管理员登录检查消息 == 1 如果是打印消息并设置消息 == 0。 当管理员注销时设置消息== 1。这样,当管理员再次登录时,它将显示消息。
【讨论】:
以上是关于如何使用php在注销时删除浏览器的本地存储项的主要内容,如果未能解决你的问题,请参考以下文章