常用php.ini文件的配置

1、extension_dir = “/path/to/php”
存放扩展库(模块)的目录,也就是PHP用来寻找动态扩展模块的目录,这个通常在php安装目录下边的ext目录(php5之前可能文件名称有些不同),这个目录在windows版本的PHP中存放的是好多.dll文件例如php_gd2.dll,php_mysql.dll等,这个对我们很重要。按照正确的路径修改一下吧,一般写绝对路径例如:d:\php5\ext

2、关于错误报告还有一个地方需要注意
display_errors = On

如果设置为On页面会显示错误报告,如果设置为Off即使设置了错误报告的级别,你也看不到错误信息。作为程序员,没有比明知道程序出了问题,而不知道出了什么问题更加头疼的了。

3、max_execution_time = 30
允许单个程序脚本占用服务器的最大时间,单位是秒,这样可以避免不经意间写出一个死循环或者什么程序,长期占用服务器而把服务器累死。如果设置值为0表示不限制运行时间。

4、memory_limit = 16M
单个程序脚本可以占用的最大内存数,设置为-1表示为不限制

5、max_input_time = -1
单个脚本解析输入数据(POST, GET, upload)的最大允许时间(秒),设置为-1 表示不限制。

6、post_max_size = 8M
允许的POST数据最大字节长度。此设定也影响到文件上传。 要上传大文件,该值必须大于upload_max_filesize指令的值。
如果启用了内存限制,那么该值应当小于memory_limit指令的值。

7、upload_max_filesize = 2M
允许上传的文件的大小,默认是两兆,如果需要上传大于2M的文件就要修改这里,当然需要关联修改memory_limit和post_max_size的值。

8、upload_tmp_dir =
文件上传时存放文件的临时目录,这个目录必须针对PHP进程可写, 如果未指定则PHP使用系统默认的临时目录

magic_quotes_gpc = On
是否对输入的GET/POST/Cookie数据使用自动字符串转义( ‘ ” \ NULL ),一般设置为On,但是在实际的编程环境中,不要依赖这个设置。一般需要判断之后对数据进行处理,看下代码
……
if (!get_magic_quotes_gpc()) { //判断该设置是否为On
$lastname = addslashes($_POST['lastname']);//不为On手工转义
} else {
$lastname = $_POST['lastname'];//否则直接使用
}
……

下面详细介绍magic_quotes_gpc()的用法:

PHP magic_quotes_gpc主要是作用在WEB客户服务端的,它的作用时间是从请求开始,接下来我们将具体的为大家讲解它的使用方式。

我们今天要向大家介绍的是PHP magic_quotes_gpc的具体使用方法。大家都知道在PHP中一个特殊的函数魔术函数,它在引用的过程中只有在传递$_GET,$_POST,$_COOKIE时才会发生作用。

1.
条件: PHP magic_quotes_gpc=off
写入数据库的字符串未经过任何过滤处理。从数据库读出的字符串也未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: 出现sql语句错误,mysql不能顺利完成sql语句,写入数据库失败。

数据库保存格式:无数据。

输出数据格式:无数据。

说明: 对于未经处理的单引号在写入数据库时会使sql语句发生错误。

2.
条件: PHP magic_quotes_gpc=off
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: sql语句顺利执行,数据成功写入数据库

数据库保存格式:snow”’’sun (和输入一样)

输出数据格式:snow”’’sun (和输入一样)

说明: addslashes()函数将单引号转换为\’的转义字符使sql语句成功执行,
但\’并未作为数据存入数据库,数据库保存的是snow”’’sun 而并不是我们想象的snow\’\’\’\’sun

3.
条件: PHP magic_quotes_gpc=on
写入数据库的字符串未经过任何处理。从数据库读出的字符串未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: sql语句顺利执行,数据成功写入数据库

数据库保存格式:snow”’’sun (和输入一样)

输出数据格式:snow”’’sun (和输入一样)

说明: PHP magic_quotes_gpc=on 将单引号转换为\’的转义字符使sql语句成功执行,
但\’并未作为数据入数据库,数据库保存的是snow”’’sun而并不是我们想象的snow\’\’\’\’sun。

4.
条件: PHP magic_quotes_gpc=on
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: sql语句顺利执行,数据成功写入数据库

数据库保存格式:snow\’\’\’\’sun (添加了转义字符)

输出数据格式:snow\’\’\’\’sun (添加了转义字符)

说明: PHP magic_quotes_gpc=on 将单引号转换为\’的转义字符使sql语句成功执行,
addslashes又将即将写入数据库的单引号转换为\’,后者的转换被作为数据写入
数据库,数据库保存的是snow\’\’\’\’sun

总结如下:
1. 对于PHP magic_quotes_gpc=on的情况,

我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。

如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。

2. 对于PHP magic_quotes_gpc=off 的情况

必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。

补充:

PHP magic_quotes_gpc作用范围是:WEB客户服务端;作用时间:请求开始时,例如当脚本运行时.
magic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;作用时间:每次当脚本访问运行状态中产生的数据

posted @ 2013-01-27 19:38  zhangliang702  阅读(221)  评论(0)    收藏  举报