I’m trying to make my PHP page disallow viewing of the page unless your on a certain IP as viewed below. I’m not sure what to try as I haven’t really been doing PHP for very long.
$clientip = $_SERVER['REMOTE_ADDR'];
$whitelistedip = 'realIPhere';
if ($clientip == $whitelistedip) {
echo "Welcome $clientip!";
}
if ($clientip !== $whitelistedip) {
die("Access Denied");
}
Advertisement
Answer
The IP checking bit does not seem to contain mistakes, except that if you only check it with REMOTE_ADDR
, the check may fail in some cases, so refer to this question to implement a better method of checking the IP.
Also, unless you have defined them somewhere else, REQUEST_URL
and URL_OF_CURRENT_PAGE
are no valid variables of the $_SERVER
environment. You could be looking into REQUEST_URI
, which is indeed a valid one. You can consult them here.
I understand that you would like to only show the HTML page contents if the IP is whitelisted. You may do so using the below shown syntax:
<?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 ?>
In the above case, the <p>hi</p>
won’t be displayed if the IP is not whitelisted. Instead of the hi
, of course, you should put the actual contents of your webpage.