PHP编程:限制IP会见的思绪和PHP代码
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。会见 那天写本人的网站,想到要有关于限制IP的功效,最少要包含可以在后台设置要限制的IP,还有,可以对IP段停止限制,好比 192.168.0.* 一样的就可以够限制全部段,冥思苦想,用了好几个if判别才处理,把复杂的代码以下:(法式中利用了phplib中的db类)<?php
/*********************************************
* 文件:limitip.php
* 用处:IP限制法式
* 版本:v1.0
* 日期:2005-1-7 12:34
* 作者:heiyeluren (heiyeluren@163.com)
* 版权:http://www.unixsky.net
*********************************************/
error_reporting(7);
session_start();
// 发送字符头信息
if ($headercharset)
header("Content-Type:text/html; charset=gb2312");
// 加载公共文件
require_once("config.php");
require_once("global.php");
require_once("db_mysql.php");
/***************** 停止客户端可否会见本网站校验 ************/
// 获得客户端IP
if(getenv('HTTP_CLIENT_IP')) {
$client_ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$client_ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$client_ip = getenv('REMOTE_ADDR');
} else {
$client_ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
// 分化客户端IP
$cip = explode(".", $client_ip);
// 毗连数据库
$db = new DB_Sql();
$err = $db->connect();
/*限制近程IP会见, PS: 这段代码真晕,呵呵,用了8个if, -_-#*/
// 从数据库中提取存储的要限制的IP地址
$query_str = "SELECT limit_ip FROM us_limitip";
$db->query($query_str);
// 把了局轮回提取,一个个停止校验
while ($db->next_record())
{
$limit_ip = $db->f("limit_ip");
$lip = explode(".", $limit_ip);
// 假如限制IP的第一个是*或是0的话就跳到毛病页
if (($lip=='*') || ($lip=='0'))
header("Location:../error.php?errid=300");
// 假如恰好客户端IP等于咱们限制IP就跳到毛病页
if ($client_ip==$limit_ip)
header("Location:../error.php?errid=300");
// 假如第一组IP分歧停止第二组IP的婚配
if ($cip == $lip)
{
// 假如第二组限制IP是*就跳到毛病页
if ($lip=='*')
header("Location:../error.php?errid=300");
// 第二组IP婚配就停止第三组IP婚配
if ($cip==$lip)
{
// 假如第三组限制字符是*就跳到毛病页
if ($lip=='*')
header("Location:../error.php?errid=300");
// 假如第三组IP婚配就跳到第三组校验
if ($cip==$lip)
{
// 假如第四组限制IP是*或0就跳到毛病页
if (($lip=='*') || ($lip=='0'))
header("Location:../error.php?errid=300");
}
}
}
}
// 释放数据库查询了局
$db->free();
/****************** IP校验停止 ******************/
?>
代码只是我初步的一个设法,一定有缺乏,假如高手有更好建议请不惜赐教!
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。 实践是检验自己会不会的真理。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
页:
[1]