标签 php 下的文章

跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户浏览该网页时,嵌入到网页中的恶意代码就会被执行。一般用来盗取浏览器cookie

跨站脚本攻击漏洞,英文名称Cross Site Scripting,简称CSS又叫XSS。它指的是恶意攻击者向Web页面中插入一段恶意代码,当用户浏览该页面时,嵌入到Web页面中的恶意代码就会被执行,从而达到恶意攻击者的特殊目的。

避免XSS的方法之一主要是将用户所提供的内容输入输出进行过滤,许多语言都有提供对HTML的过滤。

- 阅读剩余部分 -

Discuz X2运行在PHP5.2.17下,php-5.2.17_errors.log出现大量的错误提示:

PHP Notice: Undefined index: fromuser in E:\bbs\index.php on line 122

这个错误提示大概意思是:存在未定义的变量。

虽然这个报错不影响程序运行,但错误日志每天不断增加也很烦人。怎么解决呢?

- 阅读剩余部分 -

对于PHP各个版本,网上已有不少评测,但大都是对版本的区别和功能变更方面。
到底用哪个版本好?哪个速度快?常用的网站程序对各版本兼容性又如何?没有找到这方面的资料。

闲着无事,我便测试了一番。

PHP版本
PHP5.2.17 PHP5.3.29 PHP5.4.36 PHP5.5.20 PHP5.6.4

PHP版本从5.2至5.6 NTS,小版本全部是最新的。PHP5.5及5.6为64位,5.2至5.4为32位。

- 阅读剩余部分 -

preg_match 匹配XML

使用preg_match函数,在读取xml内容匹配的时候,需要注意括号与斜杠转换,否则会出现”preg_match(): Unknown modifier“的错误提示。

例如XML语句是:

<city>广州</city>

正确的preg_match写法:

preg_match('/\<city\>(.*)\<\/city\>/',$files,$city);

- 阅读剩余部分 -

服务器环境是Windows2008r2 IIS7.5,下载了最新的PHP5.6.4 VC11 nts 64位版本,配置好以后,再下载Wincache目前最新1.3.6.3 for 5.6,却怎么也配置不成功。换成php5.5.20 vc11 nts 64位版本,依然加载wincache不成功。
难道是5.6不支持wincache了?
应该不是这个原因,否则wincache就不会发布对应的这个版本了。
而服务器上的PHP5.4和5.3都能支持最新wincache 1.3.6.3。
经过分析,应该是因为wincache不支持64位版本的PHP。
PHP5.5以后提供64位和32位2种版本了。
而PHP官方只提供PHP5.4和PHP5.3的wincache下载,可能跟PHP5.5以后版本内置zend opcache有关。

- 阅读剩余部分 -

SQLite数据库:免费,跨平台,速度快,支持加密,是小型项目开发首选数据库。
SQLite最大支持2TB,支持PHP,JAVA,.NET,媲美MYSQL的速度,跟ACCESS一样的便捷,直接放在空间即可。但安全性和效率远超ACCESS。
从PHP5开始,默认支持的数据库不再是MySql,而是SQLite,可见其影响力。
PHP5.2开始增加对pdo sqlite的支持。

- 阅读剩余部分 -

PHP5.3以后的版本不再支持ereg和eregi函数了,报错:
Function eregi() is deprecated

参考PHP官方手册,用preg_match代替,而且效率更高。

ereg和eregi函数使用是一样的,但区别在于是否区分大小写。
原函数eregi如果直接替换为preg_match,会出现一些问题,格式有点改变。

- 阅读剩余部分 -