禁止用户查看页面

时间:2021-03-11 20:02:33

标签: php

我试图让我的 PHP 页面禁止查看该页面,除非您使用某个 IP,如下所示。我不知道该尝试什么,因为我真的很长时间没有使用 PHP。

$clientip = $_SERVER['REMOTE_ADDR'];
$whitelistedip = 'realIPhere';

    if ($clientip == $whitelistedip) {
    echo "Welcome $clientip!";
    }
    
    if ($clientip !== $whitelistedip) {
     die("Access Denied");
    }

2 个答案:

答案 0 :(得分:1)

IP校验位好像没有错误,只是如果只用REMOTE_ADDR校验,在某些情况下可能校验失败,参考this问题实现更好的方法检查IP。

此外,除非您在其他地方定义了它们,否则 REQUEST_URLURL_OF_CURRENT_PAGE 不是 $_SERVER 环境的有效变量。您可能正在研究 REQUEST_URI,这确实是一个有效的。您可以咨询他们here

我知道如果 IP 被列入白名单,您只想显示 HTML 页面内容。您可以使用以下显示的语法来执行此操作:

<?php
$clientip = $_SERVER['REMOTE_ADDR'];
$whitelistedip = 'realIPhere';
?>

<?php if ($clientip == $whitelistedip) : ?>

<!-- Place all your HTML here, example: -->
<p>hi</p>

<?php else : ?>

<?php die("Access denied") ?>

<?php endif ?>

在上述情况下,如果 IP 未列入白名单,则不会显示 <p>hi</p>。当然,您应该放置网页的实际内容,而不是 hi

答案 1 :(得分:0)

我认为针对 $URL_OF_CURRENT_PAGE 的测试失败了。我不明白你为什么要那样做,你只是在他直接到达那里的情况下才试图阻止吗?如果我正在编码它会更简单一些:

if ($clientip == $whitelistedip) {
    echo "Welcome $clientip!";
}
else {
    die ("Access Denied"); 
}