今天在创建《明尼苏达多相个性测查调查表(MMPI)》的时候发生了一个问题,先看图片:
limesurvey-error-max_input_vars-too-low.png
MMPI一共有566题,答案全部采用是和否,所以最简单的方式就是采用阵列题型,将所有问卷题目当成子问题来处理。只不过当我点击保存按钮时,就发生了错误,出现如上图中的提示。然后再看一下子问题内容,发现少了一大半,只剩下330题,其余都被自动删除了。
之前在安装4.X版本时同样出现过类似的问题,子问题一多就会被自动删除,唯一不同的就是没有任何提示,当时还觉得是系统BUG,现在回头想想可能是同样的问题。

接受多少输入的变量(限制分别应用于 $_GET、$_POST 和 $_COOKIE 超全局变量)。指令的使用减轻了以哈希碰撞来进行拒绝服务攻击的可能性。 如有超过指令指定数量的输入变量,将会导致 E_WARNING 的产生,更多的输入变量将会从请求中截断。

以上是PHP的官方说明。

解决办法

修改php.ini文件,将max_input_vars=1000的注释取消并且将数值改为max_input_vars=10000,重新启动php服务。
回到LimeSurvey中,重建子问题保存,这次一切OK。
但是仍然会有一个问题,子问题太多之后顺序会乱(见下图),不知道是因为设置还是因为系统BUG。
limesurvey-subquestions-random.png

最后修改:2020 年 07 月 06 日
如果觉得我的文章对你有用,请随意赞赏