有些日子我一直在努力让某些ips访问我的家庭网站,因为我只希望我的家人能够访问该网站。生病需要你们的帮助。这是我已经走了多远,如果ip不在数据库中,它将重定向到www.google.com。
代码:
$ip =$_SERVER['REMOTE_ADDR'];
$result = mysql_query('SELECT * FROM `ips` WHERE `ip`="' . $ip . '"');
if(mysql_affected_rows($link) < 0){
header('location:http://google.com');
}
编辑:知道我可以使用什么不会改变计算机的mac地址,所以代码需要更改表和里面的名称。我将如何处理,所以当用户尝试访问我的网站时,它会检查计算机的mac地址是否在数据库中,否则重定向到google.com。
亲切的问候Fredrik
答案 0 :(得分:3)
我不确定问题是什么,但如果您想要对网站进行密码保护而又不想让用户再生成其他密码,则可以试用LightOpenID图书馆。这样,您的家人就可以使用他们选择的OpenID标识符登录。您只需要保留其标识符列表。它大致是StackOverflow使用的身份验证系统。
关于OpenID帐户,如果您使用Google,Yahoo或许多其他网站,那么您已拥有一个帐户。
答案 1 :(得分:1)
mysql_affected_rows用于INSERT,UPDATE或DELETE 使用此:
if(mysql_num_rows($result) == 0){
header('location:http://google.com');
}
为什么使用$ link变量而不是$ result?
答案 2 :(得分:1)
IP地址经常变化,因此他们可能有一天访问,而下一次会有所不同,他们将失去特权。
通过创建登录系统,您会感觉更好。这样,他们就可以从任何地方访问您想要共享的信息。
答案 3 :(得分:1)
您也可以考虑尝试使用htaccess执行此操作。查看stupid htaccess tricks。
更好的方法可能是使用htaccess密码here's a free tool,这也很容易设置。
此外,您应该检查代码中返回的行数,而不是检查受影响的行。查看PHP manual
答案 4 :(得分:0)
如果您使用Apache作为您的网络服务器,您可以将httpd.conf
配置文件中的目录节点内容更改为允许来自YOUR_IP并拒绝所有人。这通常是创建此类限制的更合适的地方。
请注意&lt; Directory /&gt;的默认Apache访问权限是全部允许的。这意味着Apache将提供从URL映射的任何文件。使用
等块更改此设置<Directory />
Order Deny,Allow
Deny from All
Allow from IP
</Directory>
然后为您想要访问的目录覆盖它。
对于重定向部分,您可以将其添加到httpd.conf
以重定向到谷歌上的403 Forbidden错误。进行更改后,请不要忘记重新启动Web服务器。
ErrorDocument 403 http://www.google.com