最近同事在维护一个PHP的网站,这个网站是很久以前开发的,之前负责维护的员工已经离职了,现在维护任务分配给我们信息技术部了,主要由这个同事负责。
现在要求把网站迁移到一个新的机房,所以需要重新配置一个主机,然后把网站移过来,折腾了几天,一切都OK了,但是在测试的时候,发现一个问题,就是所有的页面,如果地址栏中有参数,需要查询数据库的,那么这个页面就查不到数据,但是数据库连接是正常的。最开始以为是程序问题,但是后来发现只要有参数传递的页面都有这个问题,于是就推测不是程序问题,程序没有修改过,那么只可能是配置问题,但是配置没发现什么问题,最后还是只能借助google了。
最后查询的结果是php的版本之间有差别,有些默认开启的配置在php5中被关闭了,如在php4以前url后面的参数是自动填充到参数名称对应的变量中,如果url地址为view.php?id=1 ,那么在view.php页面中可以直接使用$id来去得参数id的值,这个对应的配置项为register_globals,在php4之前的版本中,默认是开启的,后面的版本是关闭的。于是就到C盘的
windows目录里面找到php.ini文件,将register_globals的值改为On,然后再测试,发现问题解决了。
为这个问题折腾了不少时间,特意记下来,以便下次再折腾。