0

我正在尝试启动管理面板的某种开头,因此如果 IP 等于允许的 IP,它将显示一个编辑按钮。我目前有我的本地主机和我的服务器的 IP 仅用于测试目的。但是,一旦我将多个 IP 设置为 $allowed,它就不起作用了。

继承人的代码:

<?PHP
$ip = $_SERVER['REMOTE_ADDR'];
$allowed = '127.0.0.1, 67.202.102.224';
?>
</head>
<body>
    <div id="page">
<?PHP
if ($ip == $allowed){
echo '<p>
<button class="btn" onclick="exampleClickToEdit();">Edit</button>
<button class="btn" onclick="exampleClickToSave();">Save</button>   
</p>';
}
?>
4

4 回答 4

2

也许使用in_array()

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$allowed = array('127.0.0.1',
                 '::1',
                 '67.202.102.224',
                 );
?>

<!--dont forget the rest of your head-->
</head>
<body>
    <div id="page">
<?php
if (in_array($ip, $allowed)){
    echo '<p>
<button class="btn" onclick="exampleClickToEdit();">Edit</button>
<button class="btn" onclick="exampleClickToSave();">Save</button>   
</p>';
}
?>
于 2012-08-30T11:43:37.547 回答
0

您正在比较字符串。字符串'67.202.102.224'不可能等于'127.0.0.1, 67.202.102.224'

我不知道任何 PHP,但通过一些谷歌搜索,我发现您可以使用以下代码:

$allowed = array('127.0.0.1', '67.202.102.224');
if (in_array($ip, $allowed)) { ...
于 2012-08-30T11:46:02.427 回答
0

$ip 永远不会等于 $allowed。您可以检查 $allowed 字符串中是否存在 $ip:

if (strpos($allowed, $ip) !== FALSE) {
于 2012-08-30T11:44:21.180 回答
0

我不是 php 专家,但您似乎正在尝试将 $ip 与一个127.0.0.1, 67.202.102.224始终为假的长字符串进行比较。你需要像这样分开你的IP"127.0.0.1", "67.202.102.224"

于 2012-08-30T11:44:58.637 回答