几天来,我一直在努力使某些ip访问我的家庭网站,因为我只想让我的家人能够访问该网站。我需要你们的帮助。这就是我所得到的,如果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
我不太确定问题是什么,但是如果您希望对站点进行密码保护,并且不希望用户生成另一个密码,那么您可以尝试使用LightOpenID库。这样,您的家人就可以使用他们选择的OpenID标识符登录。你只需要保留他们的标识符列表。这大概就是StackOverflow使用的认证系统。
至于OpenID帐户,如果你使用谷歌、雅虎或许多其他网站,你已经有了一个。mysql_affected_rows用于INSERT, UPDATE或DELETE使用:
if(mysql_num_rows($result) == 0){
header('location:http://google.com');
}
为什么使用$link变量而不是$result?
IP地址变化非常频繁,所以他们可能有一天可以访问,第二天就会不同,他们将失去特权。
你最好创建一个登录系统。这样,他们就可以从任何地方访问您想要共享的信息。
您也可以考虑尝试使用htaccess来做到这一点。看看这些愚蠢的htaccess技巧。
一个更好的方法可能是使用htaccess密码这是一个免费的工具,也很容易设置
另外,您应该检查代码中返回的行数,而不是检查受影响的行。查看PHP手册
如果您使用Apache作为web服务器,您可以将httpd.conf
配置文件中的目录节点内容更改为允许从YOUR_IP和拒绝从所有。这通常是创建此类限制的更合适的位置。
请注意,默认的Apache访问
<Directory />
Order Deny,Allow
Deny from All
Allow from IP
</Directory>
,然后为您想要访问的目录重写此。
对于重定向部分,您可以将此添加到您的httpd.conf
重定向到403禁止错误的谷歌。修改完成后,不要忘记重新启动web服务器。
ErrorDocument 403 http://www.google.com