2012-02-24 81 views
-2
我有一个网站,我要创建这样一个问题

页我想知道:PHP限制

我怎样才能防止未经身份验证的用户可以通过做一些像存取权限的网站:

Website.com/content

它假设未经身份验证的用户无法访问页面内容,但如果他们直接在地址栏中写入,他们可以看到内容。那么如何防止这种情况发生呢?如何让只有通过身份验证的用户在地址栏中输入内容时才能看到内容?

我想这样做使用cookie ...通过我已经实现了使用数据库验证的方式。

+0

那么,在输出它之前,检查'website.com/content'页面上的cookie和授权。 – deceze 2012-02-24 06:08:32

+0

你能更具体吗? 'Website.com/content'包含什么?它是另一个PHP脚本还是内容文件,如图像? – 2012-02-24 06:13:09

回答

-1

我通常是一个asp.net开发人员。在asp.net中,我们有一个母版页,它就像一个可以放入其他内容页的模板。

如果PHP有类似的东西(包括?)那么你可以创建一个函数来检查用户是否应该是他在哪里,如果没有将他重定向到登录页面。并将其包含在所有不可访问的页面上。

0

在页面上放置一个检查

<? 
if (!authorized()) { # substitite with your own authorize function 
    header('401 Unauthorized', 401); 
    die('You are not authorized!'); 
} 
?> 

UPDATE:将它放在开始输出之前。如果您未使用ob_start,则表示位于页面顶部。

0

比方说你有错误消息“website.com/unauthorize”

和inlcude文件,“check_auth.php”页面,而用户登录,验证用户,并通过与创建cookie“USERLOGIN “值为0或1. 1表示成功登录,0表示无效的id/pass。

并在您想要限制的每个文件中包含check_auth.php。

include "check_auth.php"; 

,并在该文件中写:

<?php 
if (! isset($_COOKIE['userLogin']) && $_COOKIE['userLogin'] != 1) 
{ 
    header("Location: website.com/unauthorize"); 
} 

这将检查登录状态并重定向取消授权用户的错误页面。将此文件包含在您需要限制的顶部的所有页面中。