我正在创建一个我正在创建的网站的问题所以我想知道:
如何通过执行以下操作来阻止未经身份验证的用户访问网站:
Website.com/content
假设未经身份验证的用户无法访问页面内容,但如果他们直接在地址栏中编写,则可以看到内容。那我怎么能防止这种情况发生呢?如何才允许经过身份验证的用户在地址栏中写入内容时看到内容?
我想使用cookies来实现这一点......就像我已经使用数据库实现身份验证一样。
答案 0 :(得分:0)
支票
<?
if (!authorized()) { # substitite with your own authorize function
header('401 Unauthorized', 401);
die('You are not authorized!');
}
?>
页面上。
UPDATE:在开始输出之前放置它。如果您没有使用ob_start
,则表示页面顶部。
答案 1 :(得分:0)
假设您有错误消息“website.com/unauthorize”
的页面和一个inlcude文件,“check_auth.php”,当用户登录时,验证用户并传递并创建值为“0或1”的cookie“userLogin”。 1表示成功登录,0表示无效id / pass。
并在每个要限制的文件中包含check_auth.php。
include "check_auth.php";
并在此文件中写:
<?php
if ( ! isset($_COOKIE['userLogin']) && $_COOKIE['userLogin'] != 1 )
{
header("Location: website.com/unauthorize");
}
这将检查登录状态,并将未授权用户重定向到错误页面。将此文件包含在您需要限制的顶部的所有页面中。
答案 2 :(得分:-1)
我通常是一名asp.net开发人员。在asp.net中我们有一个母版页,它就像一个模板,你可以将其他内容页面放入其中。
如果PHP有类似的东西(包括?)那么你可以创建一个函数来检查用户是否应该在他所在的位置,如果没有将他重定向到登录页面。并将其包含在所有无法访问的页面上。