2012-07-20 39 views
2

我已经通过使用会话变量来存储用户名登录页面,我想知道是否有可能创建仅供登录用户访问的url链接,但url链接不应用于未登录的用户,例如登录的用户,如果他尝试复制url并将其提供给另一个用户人,如果该人在未登录的情况下在他的地址栏中粘贴了url,他应该重定向到登录页面或应该显示一些消息,说明他需要登录才能查看该特定的url链接。防止注销用户访问可用于登录用户的url链接

我已经在谷歌搜索了这个,不能找到任何解决方案。

* 编辑* 实际上该链接是其URL需要被隐藏,类似于我们躲在被用于使用标头下载PDF格式的路径方式的HTTPS页面。

例如我做了一个PHP页面,如果用户名在会话中,他点击一个链接,他将被重定向到这个链接页面,但他无法看到URL。

谢谢

+0

当然,这是可能的。如果你使用像CakePHP这样的框架,这很容易,但我相信你也可以用直接的PHP来完成它。 – Antimony 2012-07-20 05:18:30

+0

你绝对可以做到这一点。当然,这些URL需要由PHP来处理。如果它没有看到'$ _SESSION ['username']'set(或者你称之为的任何东西),请让你的代码发送一个错误。尝试一下,然后发布一些代码,如果它不起作用。 – ghoti 2012-07-20 05:19:33

回答

2

登录成功时创建一个会话变量。

$_SESSION['logged_in'] = $_POST['username']; 

然后在每一页使用session_start()

之后立即开始检查

if(! isset($_SESSION['logged_in'])) { /* redirect to login page */ }

0

。假定的“URL链接”是PHP页面,在每个页面的顶部只需验证请求页面的Web浏览器是否已建立有效会话。

0

这样做:

<?php 

session_start(); 

if(isset($_SESSION['loggeduser']){ 
echo "Welcome"; 
} 
else{ 
echo "Unauthorized User"; 
//redirect user to login page 
} 

?>