技术资源
3
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用$_SERVER["HTTP_X_FORWARDED_FOR"] 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。
php当中获得真实IP的函数要注意的地方<<HTTP_X_FORWARDED_FOR & REMOTE_ADDR>>
© kekehu / 技术资源 / 2006.04.29 / 10:42 / 16427PV
<<HTTP_X_FORWARDED_FOR & REMOTE_ADDR >>在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用$_SERVER["HTTP_X_FORWARDED_FOR"] 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
<?php
if ($_SERVER["HTTP_X_FORWARDED_FOR"]=="")
{
$user_ip=$_SERVER["REMOTE_ADDR"];
}
else
$user_ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
?>
if ($_SERVER["HTTP_X_FORWARDED_FOR"]=="")
{
$user_ip=$_SERVER["REMOTE_ADDR"];
}
else
$user_ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
?>
即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。
2
php实现自动刷新有四种方法
© kekehu / 技术资源 / 2006.04.29 / 08:53 / 35238PV
//PHP自带函数
Header("Location: [url]http://www.5661.net[/url]");
//利用meta
echo "<meta http-equiv="refresh" content="0; url=http://www.5661.net">";
//利用Javascript语言
echo "<script language='javascript'>";
echo " location='http://www.geekso.com;";
echo "</script>";
//还可以利用javascript语言
echo "<script>window.location='index.php?action=adminier#msg1'</script>";
Header("Location: [url]http://www.5661.net[/url]");
//利用meta
echo "<meta http-equiv="refresh" content="0; url=http://www.5661.net">";
//利用Javascript语言
echo "<script language='javascript'>";
echo " location='http://www.geekso.com;";
echo "</script>";
//还可以利用javascript语言
echo "<script>window.location='index.php?action=adminier#msg1'</script>";
0
这意味着可以使用多个tbody创建许多内容区。如
Read more...
tbody iframe是什么意思?
© kekehu / 技术资源 / 2006.04.28 / 15:56 / 8135PV
table元素可以有三个不同区,thead,tbody,tfoot,其中thead,tfoot只能出现一次,而tbody可以出现多次。这意味着可以使用多个tbody创建许多内容区。如
<tbody>
<tr><td>row 1</td></tr>
</tbody>
<tbody>
<tr><td>row 1</td></tr>
</tbody>
<tr><td>row 1</td></tr>
</tbody>
<tbody>
<tr><td>row 1</td></tr>
</tbody>
Read more...
0
如何用PHP获得当前网页的URL
© kekehu / 技术资源 / 2006.04.28 / 11:27 / 10067PV
<?php
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
?>
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
?>
2
想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大家分享学习经验.
开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明
"^The": 开头一定要有"The"字符串;
"of despair$": 结尾一定要有"of despair" 的字符串;
Read more...
半小时精通正则表达式
© kekehu / 技术资源 / 2006.04.18 / 11:39 / 6653PV
From:Internet想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大家分享学习经验.
开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明
"^The": 开头一定要有"The"字符串;
"of despair$": 结尾一定要有"of despair" 的字符串;
Read more...
1
以下是php解决的办法:
PHP环境下多选框解决的办法。
© kekehu / 技术资源 / 2006.04.18 / 09:54 / 8280PV
我的FORM里有多选项,但提交后只能把最后一项插入数据库,asp不会出现这种情况。以下是php解决的办法:
<?
if($_POST["submit"])
{
foreach ($_POST["test"] as $val)
{
echo $val."<br>";
}
}
?>
<form action="<?=$PHP_SELF;?>" method="post">
<input type="checkbox" name="test[]" value="1">
<input type="checkbox" name="test[]" value="2">
<input type="checkbox" name="test[]" value="3">
<input type="submit" name="submit" value="submit">
</form>
if($_POST["submit"])
{
foreach ($_POST["test"] as $val)
{
echo $val."<br>";
}
}
?>
<form action="<?=$PHP_SELF;?>" method="post">
<input type="checkbox" name="test[]" value="1">
<input type="checkbox" name="test[]" value="2">
<input type="checkbox" name="test[]" value="3">
<input type="submit" name="submit" value="submit">
</form>
0
来源:超越PHP
上传日期:2003-01-16
详细介绍:
记得以前总觉得数据库分页麻烦,而网上的一些分页类又总感觉太繁琐,于是这个类就诞生了。:D
当初写这个类的时候就是想把分页简单化。您在使用这个类的时候只要把记录数,页数大小和要传递的变量传过来,剩下的一切都会自动搞定。
Read more...
一个通用的数据库分页类
© kekehu / 技术资源 / 2006.04.08 / 17:38 / 7146PV
作者:Avenger来源:超越PHP
上传日期:2003-01-16
详细介绍:
记得以前总觉得数据库分页麻烦,而网上的一些分页类又总感觉太繁琐,于是这个类就诞生了。:D
当初写这个类的时候就是想把分页简单化。您在使用这个类的时候只要把记录数,页数大小和要传递的变量传过来,剩下的一切都会自动搞定。
Read more...
0
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
Read more...
解决MySQL 4.1乱码问题
© kekehu / 技术资源 / 2006.04.03 / 15:12 / 6290PV
从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
Read more...
0
PHP 4.1.0 的 php.ini 的全文翻译
;;;;;;;;;;;;;;;;;;;
; About this file ;
;
; 关于这个文件
;
;;;;;;;;;;;;;;;;;;;
;
; This is the recommended, PHP 4-style version of the php.ini-dist file. It
; sets some non standard settings, that make PHP more efficient, more secure,
; and encourage cleaner coding.
;
;
; 这个是推荐的,PHP 4 版本类型的 php.ini-dist 文件,他设置了一些非标准的设置,他们使得
; PHP更加有效,更加安全,鼓励整洁的编码。
;
Read more...
PHP 4.1.0 的 php.ini 的全文翻译
© kekehu / 技术资源 / 2006.04.01 / 11:22 / 29036PV
源:php2000PHP 4.1.0 的 php.ini 的全文翻译
;;;;;;;;;;;;;;;;;;;
; About this file ;
;
; 关于这个文件
;
;;;;;;;;;;;;;;;;;;;
;
; This is the recommended, PHP 4-style version of the php.ini-dist file. It
; sets some non standard settings, that make PHP more efficient, more secure,
; and encourage cleaner coding.
;
;
; 这个是推荐的,PHP 4 版本类型的 php.ini-dist 文件,他设置了一些非标准的设置,他们使得
; PHP更加有效,更加安全,鼓励整洁的编码。
;
Read more...
2
mysql5全新安装手册
本手册是在对colin兄及其它网友的经验总结而来,在此,对大家所做出的贡献表示感谢!
闲话少叙,书归正传!我是在Windows XP SP2 环境安装的。
首先在站内地址:http://download.mysql.cn/src/2006/0218/199.html
下载到mysql-5.0.18-win32,如图1:
图1
双击该图标(先保证你的电脑上安装了WinRAR或者WinZIP等解压缩工具,压缩工具也可以在上面的页面中下载到),打开rar解压窗口,如图2
Read more...
mysql5全新安装手册
© kekehu / 技术资源 / 2006.03.31 / 18:03 / 14133PV
--------------------------------------------------------------------------------mysql5全新安装手册
本手册是在对colin兄及其它网友的经验总结而来,在此,对大家所做出的贡献表示感谢!
闲话少叙,书归正传!我是在Windows XP SP2 环境安装的。
首先在站内地址:http://download.mysql.cn/src/2006/0218/199.html
下载到mysql-5.0.18-win32,如图1:
图1
双击该图标(先保证你的电脑上安装了WinRAR或者WinZIP等解压缩工具,压缩工具也可以在上面的页面中下载到),打开rar解压窗口,如图2
Read more...