Submitted by zwws on 2007, July 20, 5:53 PM
1. 过滤影响SQL正常运行的字符。
1) 过滤影响MySQL正常运行的字符。
当需要把用户输入的内容(有可能包含单引号、双引号 、反斜线、空字元 NUL )代入到mysql的语句 中执行时,应该把APACHE中的magic_quotes_gpc项设成On。
如果APACHE中的此项设成Off时,也可用php的函数addslashes()达到相同的目的,但这两种手段不能同时使用,否则会出现重复替换,出现错误。
样例:
PHP代码
- <?php
- if (get_magic_quotes_gpc()) {
- $content=$_POST["content"];
- } else {
- $content=addslashes($_POST["content"]);
- }
- ?>
当然,如果APACHE中的magic_quotes_gpc项为On,但有时又不想转义某项的特殊字符,可以使用stripslashes()去掉其中的 \
2) 过滤影响MSSQL正常运行的字符。
当需要把用户输入的内容(有可能包含单引号)代入到mssql的语句中执行时,应该把APACHE中的magic_quotes_sybase项设成On,此时magic_quotes_gpc项不再生效。
如果APACHE中的此项设成Off时,php中并没有合适的函数达到相同的目的,只能使用字符串替换函数来达到此目的。
样例:
PHP代码
- <?php
- $content=str_replace("'","''"$_POST["content"]);
- ?>
现在10.218.17.53上的PHP既要访问mysql又要访问mssql,APACHE中的设置不能兼顾两种数据库,所以只对mysql做了相应设置。
2. 应对用户输入包含SQL语句的一个措施。
以下两种SQL写法都比较普遍,但安全程度是不同的,当用户提交的$id='1 and 1=2 union select ...'时第一种就会显示出不该显示的数据,而第二种就相对安全些。
SQL代码
- Select * FROM article Where articleid=$id
- Select * FROM article Where articleid='$id'
3. 防止用户输入的内容因包含html标签或javascript而影响页面的正常显示。
可以用htmlspecialchars()过滤其中的 & " < >
PHP代码
- $content=htmlspecialchars($content);
4. 当页面要显示的内容包含回车换行时,可以使用nl2br()来达到页面上换行的效果。
Tags: php技巧, php, 安全
转载丨Web相关 | 评论:0
| Trackbacks:0
| 阅读:4887
Submitted by zwws on 2007, July 18, 2:16 AM
Tags: php, 布偶
转载丨Web相关 | 评论:0
| Trackbacks:0
| 阅读:3580
Submitted by zwws on 2007, July 18, 2:10 AM
平时积累的PHP技巧,与大家分享,可能有一些很基础,但每个人都有大脑短路的时候,常拿出来翻翻也没有坏处......
如果有什么错误 希望指出,或是跟贴分享自己积累的技巧
PHP代码
- public function GetIP(){
- if (getenv("HTTP_CLIENT_IP")&& strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")) {
- $ip = getenv("HTTP_CLIENT_IP");
- }
- elseif (getenv("HTTP_X_FORWARDED_FOR")&& strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")) {
- $ip = getenv("HTTP_X_FORWARDED_FOR");
- }
- elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
- $ip = getenv("REMOTE_ADDR");
- }
- elseif (isset($_SERVER['REMOTE_ADDR'])&$_SERVER['REMOTE_ADDR']&strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- else
- $ip = "unknown";
- return($ip);
- }
2、跳转 <meta http-equiv='refresh' content='3; url =1.php'>
3、 /(^[0-9]|^[1-9][\d]{1,3})($|[\.][\d][1-9]$|[\.][1-9]$)/; 一个价格匹配的正则
4、js 取得 1-10的随机数 document.write(Math.floor(Math.random()*10+1)); //1-10随机数
5、mysql 取得随机记录 SELECT * FROM lzyblog_shop_category ORDER BY RAND() limit 5
6、js: onpropertychange当对象属性发生变化的时候触发事件
7、筛选出 年月出来的 SQL
SELECT regdate FROM `analyse_system` GROUP BY year( regdate ) + month( regdate ) ORDER BY `regdate` DESC
或是 SELECT regdate FROM `analyse_system` GROUP BY left(regdate,7) ORDER BY `regdate` DESC
8、strrev 字符串翻转
9、basename(__FILE__); 获得文件名称
10、implode(间隔符号,数组) explode(间隔符号,字符串)
11、加下划线的 CSS
<a href="#" style="text-decoration:none; border-bottom:#FF0000 1px dashed;">asdfasdf</a>
12、perl 的效率问题
1)处理文本文件,一般是逐行读入,在这样的循环里,绝不要使用外部shell命令,例如,假如要将分析内容写往其他文件,那么该老老实实的使用perl 自己的写文件句柄的方式,而不要使用shell的"echo $_ >;file"之类的命令,后者比前者慢10000倍。
2)在匹配正则表达式时,如果匹配里含有"&"字符,那么记得在前面加个"\"转义,否则perl会把匹配的内容复制一份以供以后参考,这导致程序其慢无比;
3)在匹配正则表达式时,尽量不要使用i选项(区分大小写),请将不区分大小写的区域尽量缩小,例如/ID=something\&/i,如果只对ID不分大小写的话,那么应该这么写:/[Ii][Dd]=something\&/,后者比前者快不止100倍;
4)在匹配正则表达式时,如果匹配项是固定不变的,那么请使用o选项,这表示只对正则表达式编译一次,例如/jsp/io比/jsp/i好很多。
5)while循环要比for/foreach循环效率高,
6)多用小括号,少用$&,$`,$'
7)多余多行匹配推荐用s/m修饰符,不推荐使用$*
13、linux修改时间
date -s 07/5/10 &&
date -s 09:28:00 &&
#clock -w
14、 checkdate 用 UNIX时间戳验证时间的正确性
15、cvs 的建立
环境设置:指定CVS库的路径CVSROOT
tcsh
setenv CVSROOT /path/to/cvsroot(指定CVS路径)
bash
CVSROOT=/path/to/cvsroot(指定CVS路径) ; export CVSROOT
初始化:CVS版本库的初始化。
cvs init
导入库
$ cd wdir(项目的目录)
$ cvs import -m "Imported sources" yoyodyne/rdir(期望在CVSROOT下的目录名) yoyo(作者) start
导入
$ cd ..
$ cvs checkout yoyodyne/rdir(项目名) # Explanation below
Tags: php技巧, php
转载丨Web相关 | 评论:0
| Trackbacks:0
| 阅读:4697
Submitted by zwws on 2007, July 11, 4:38 PM
重新注册 pngfilt.dll
regsvr32 c:\windows\system32\pngfilt.dll
重启IE。
还是没有解决的话,替换c:\windows\system32\pngfilt.dll,再重新注册一下就OK了。
Tags: ie, png, 图片
共享丨实用技巧 | 评论:0
| Trackbacks:0
| 阅读:7252
Submitted by zwws on 2007, July 4, 8:47 PM
自从开始做Web开发起,一直都没有找到一个很让人满意的Javascript开发工具。从Editplus、Dreamweaver到FrontPage、Visual Studio,没有一样是很称手的。你是不是还在为Visual Studio中的那一点点智能提示感到兴奋不已?的确VS比其他的好那么一点点,但是相对于VS中的C#、VB等来说对javascript的支持实在是太少了。
下面我要向你介绍一款非常优秀的Javascript(AJAX) 开发工具:Aptana。应为它实在太棒了,所以我忍不住想向你推荐它。
【详见全文】
» 阅读全文
Tags: ide, javascript, ajax, 开发工具, aptana
交流丨网页相关 | 评论:8
| Trackbacks:0
| 阅读:7074
Submitted by zwws on 2007, July 3, 9:00 AM
Tags: 框架, javascript
交流丨网页相关 | 评论:2
| Trackbacks:0
| 阅读:5885
Submitted by zwws on 2007, July 1, 3:50 PM

引:
当我们读小学的时候,读大学不要钱
当我们读大学的时候,读小学不要钱
当我们不能挣钱的时候,房子是分配的
当我们能挣钱的时候,却发现房子已经买不起了
当我们不到结婚的年龄的时候
骑单车就能娶媳妇
当我们到了结婚年龄的时候
没有洋房汽车娶不了媳妇
当我们还没开始关注炒股的时候,炒股的人都能赚钱翻番
当我们开始尝试去炒股的时候,股灾接二连三
早些时候在某个群看到此文时,心里那个翻腾蹈海。
想想目前我们还停留在那行刺眼的断点上,以后还有那么多富有时代特征的“曲折”要走,不禁哀叹:“我们生的还真不是时候!”。
今天到小东的Blog(在读高一,擅长FLASH编程、设计,在闪客圈小有名气)上逛了一圈,发现此文。顿感阵阵苦楚。
想当年我们面对如此枯燥无味的数学的时候,容易躁动的我选择了抗拒,以致现在后悔不已,每到期末考都胆战心惊,生怕过不了挂在那,到大学更是这样,由此心里结下了疙瘩,每每想起都很不舒服。
(明天就开考了...
)
发现我们之前都在做所谓“素质教育”的小白鼠,试验过来试验过去,到最后我们不还是被压在沉重的书包下喘不过气?我都不知道自己从中得到了啥。现在“素质教育”貌似象样了点,起码学的东西能在实际中得到运用、锻炼,相对来说不那么枯燥无味了,学习也带劲了。
看来偶们这些老一代要更努力些才能在社会上找到一个角落容身。加油了!
[图片来源:浮云不寂寞]
Tags: 牢骚
关于丨我、博客 | 评论:2
| Trackbacks:0
| 阅读:5365
Submitted by zwws on 2007, July 1, 10:49 AM
相关站点:http://www.prototypejs.org/
Prototype 是由 Sam Stephenson 开发的一个 Javascript 类库,也是其他框架的鼻祖。其对现有的部分 Javascript 对象比如 Object 、 Function 、 Dom 、 String 等进行扩展,并且对 Ajax 应用进行封装,借此提供了兼容标准的更加易于使用的类库,极大的方便开发人员快速创建具备高度交互性的 Web2.0 胖客户端应用程序。
Prototype 最初的目标是应用于 Ruby 领域的,不过由于优秀的表现和完美的封装以及服务器语言无关性,现在已经被应用到各个领域,包括 Java 、 .NET 、 PHP 等。不过在 Prototype 的源码中,还是可以找到 Ruby 的影子,比如 Ruby 样式的 Array 对象枚举。
正如之前提到的, Prototype 是一个底层的远程调用包,虽然其仅仅是一个千余行的 Javascript 文件,但是它为其他框架提供了最底层的 Javascript 扩展和 Ajax 封装。其他 Javascript 程序库在其基础上构建了更加高级的功能和 UI 效果,比如 Script.aculo.us 。
Prototype 目前的最新版本是1.5 ,其官方网站提供了最新版本的下载,包括 zip 包、 js 文件和 Subvision 源码。不过和其他版本一样, Prototype 官方网站并未提供完整的参考文档,开发者只能通过阅读源码掌握其功能。可喜的是,网上已经流传着不少关于 Prototype 源码解读和使用的文档,这在一定程度上弥补了 Prototype 官方文档不足的遗憾。
【详见全文】
» 阅读全文
Tags: 框架, javascript, 入门
交流丨网页相关 | 评论:1
| Trackbacks:0
| 阅读:6597