discuz7.2升级discuz!X2中polloptions.php和pollvoter.php不能正常运行的解决方案

使用转换程序convert把论坛从版本discuz!7.2升级到discuz!X2的过程中,polloptions.php和pollvoter.php报错。我把升级过程分步骤描述如下:

polloptions.php程序的修改

一、为了减少转换程序的压力,把每次转换数据的数量从1000减小为100.

二、把forum_polloption表的插入操作拿到数据库中完成,运行一下SQL语句:

三、修改以下程序,见程序中注释。注意:在对$voterids遍历循环操作中(修改后的第46行)添加is_numeric的判断,因为原discuz!7.2中$voterids有很多是IP地址,并不全都是uid,这时要把ip地址的投票者进行过滤。

四、把polloptions.php修改前第38行的调用members表赋值forum_pollvoter表username的操作取消,放到转换程序运行之后再用sql语句完成。

 

 

\convert\source\d7.2_x2.0\table\polloptions.php的修改前是这样的,可以跟修改后的做比较:

\convert\source\d7.2_x2.0\table\polloptions.php的修改后:

对pollvoter.php程序的修改:
文件路径:\convert\source\d7.2_x2.0\pollvoter.php

操作步骤:

1.同样是把$limit值改为100.

2.在程序第30行处对$voterid进行数字判断“if(is_numeric($voterid))”。

3.该程序有一处错误。程序源码的第33行:把$options[] = $row[‘polloptionid’];修改为$options[] .= $row[‘polloptionid’];//这个地方少了一个点,应该是.=。

 4.把第35、36行拿到第32行的if语句之内,因为当polloptionid值在数据中已经存在时就没必要再重复一遍了。

pollvoter.php程序修改前后的代码如下:

修改前:

修改后:

您可能还喜欢...