PHP IP地址捕获语句
我正试图使它的内容只为我的IP地址,和其他人。我试过:PHP IP地址捕获语句,php,ip-address,capture,Php,Ip Address,Capture,我正试图使它的内容只为我的IP地址,和其他人。我试过: <?php $ip = $_SERVER['REMOTE_ADDR']; if ($ip = "FirstIp" && $ip="SecondIp") { echo "Protect Content"; } else { echo "You do not have permission to look at this. Your IP has been recorded. $ip"; $fileofips="lis
<?php
$ip = $_SERVER['REMOTE_ADDR'];
if ($ip = "FirstIp" && $ip="SecondIp") {
echo "Protect Content";
} else {
echo "You do not have permission to look at this. Your IP has been recorded. $ip";
$fileofips="list.txt";
$ip = "$_SERVER[REMOTE_ADDR]";
$file=fopen($fileofips, 'a');
fwrite($f, $_SERVER[REMOTE_ADDR]);
fclose($f);
}
?>
而且它甚至不会捕获入侵的IP。请调整代码;P
if ($ip = "FirstIp" && $ip="SecondIp") {
单个等号是赋值,而不是比较。另外,您的意思可能是|
<代码>$ip不能同时是两件事
if($ip === "FirstIP" || $ip === "SecondIP") {
此外,您可能希望在文件中的IP之间使用换行符,因此请添加一个
\n
。另外,将变量用双引号括起来,如下所示:
$ip = "$_SERVER[REMOTE_ADDR]";
这是毫无意义的。使用变量。如果您的
语句因为使用单个=
而覆盖$ip
变量,则使用;将其更改为=
,并将&&
更改为|
(一个IP不能同时为两个):
在某些情况下,使用可能更合适:
if (in_array($ip, ["FirstIp", "SecondIp", "ThirdIp"])) {
echo "Protect Content";
} else {
//
}
像斯巴库普回答
$ip = $_SERVER['REMOTE_ADDR'];
if (in_array($ip, ["FirstIp", "SecondIp", "ThirdIp"])) {
// add hidden content here
} else {
echo "Access denied";
}
或者,更好的是,如果IP不在阵列中,则发布消息并退出。只需执行以下操作:
$ip = $_SERVER['REMOTE_ADDR'];
if (!in_array($ip, ["FirstIp", "SecondIp", "ThirdIp"])) {
echo "Access denied";
exit;
}
或者包含一个404页面,使其看起来什么都没有:
$ip = $_SERVER['REMOTE_ADDR'];
if (!in_array($ip, ["FirstIp", "SecondIp", "ThirdIp"])) {
include('404.html');
exit;
}
“请调整代码;P”否。请告诉我们什么不起作用以及您尝试了什么。看看其他关于写入文件的StackOverflow问题。最近几天我注意到,很多人对|
缺乏了解,&&
使用…@minitech在这种情况下不需要使用tripple=。您不是在寻找布尔值,只是寻找一个简单的字符串。@DainisAbols:我喜欢它,因为它更严格。仅仅因为我不需要这样做并不意味着我不应该这样做。事实并非如此,如果出于某种原因将IP值设置为0
,您仍然会得到true,即使您不需要它为true。在这种情况下,您严格地寻找的是字符串值,而不是字符串为真。@DainisAbols:不,真的。这是一种编码约定,我对此非常满意,谢谢。“检查布尔值是一种不好的做法”——你确定你使用了正确的术语吗?这是缺失的)在“ThirdIp”])
$ip = $_SERVER['REMOTE_ADDR'];
if (!in_array($ip, ["FirstIp", "SecondIp", "ThirdIp"])) {
include('404.html');
exit;
}