2015-08-27 115 views
-5

如果我复制URL,而在登录模式,然后注销后,我将其粘贴到地址栏,然后按回车它显示的页面。浏览地址栏

是否有任何可能的方式来知道,从浏览器的地址栏中的网址是什么?

+1

对不起,我不想粗鲁,但我不能理解由于英语质量差而导致的问题的含义。有什么方法可以重新提出问题以便我们理解它吗? –

+0

欢迎来到SO。你的意思是'location.href'?请详细说明你在做什么。例如,访问[帮助]以查看如何提问。我编辑了你的问题 - 猜测你在问什么。我试图猜测你的意思。您可以使用'location.replace(url)'将前一页面保留在历史记录外,并尝试将页面从缓存中移出。 – mplungjan

+0

你不需要知道用户如何到达那里。你应该检查是否设置了他登录的会话变量。 – Barmar

回答

0

地址栏是无关紧要的,如果有一个链接到另一个网址的网页可能会发生同样的事情。

所有应用程序的页面需要检查用户是否登录,他们显示任何东西之前。登录应该设置一个会话变量,并且每个页面都应该检查该变量。在下面我示例代码,它重定向到登录页面,如果他们没有登录。

<?php 
session_start(); 
if (empty($_SESSION['username'])) { 
    header("Location: login.php"); 
    exit; 
} 

登出页面应该做unset($_SESSION['username'])

+0

但是,如果页面仍然在缓存中,它仍然会显示页面。 – mplungjan

+0

对此你可以做的不多。他还可以截取页面的截图并永久地看到它。 – Barmar

+0

如果当然。然而,有些方法(新窗口,会话如你所说,location.replace)可以提供一些帮助 – mplungjan

0

登录或注销时,您肯定正在访问会话变量。 解决这个问题。只需在应用程序的每个网址上进行检查,无论会话变量是否设置。

如果设置那么从您的应用程序提供数据。如果没有将请求重定向到登录页面。 另外,当用户手动点击注销时,一定要清除/取消设置用户会话的所有会话变量。 我希望它能工作

相关问题