x

主要章节

  1. LimeSurvey Cloud 与 LimeSurvey CE 对比
  2. LimeSurvey Cloud - 快速入门指南
  3. 软件安装
  4. 如何设计一个不错的调查(向导)
  5. 入门指南
  6. 管理 LimeSurvey
  7. 调查 - 说明
  8. 调查设置
  9. 问卷调查菜单
  10. 调查问卷结构
  11. 问题 - 简介
  12. 题组 - 简介
  13. 调查 - 管理
  14. 调查工具栏选项
  15. 多语言调查
  16. ExpressionScript 引擎 - 快速入门指南
  17. 其他和高级功能
  18. 常规问答
  19. 故障排除
  20. 变通方法
  21. 许可证
  22. 版本更改日志
  23. 插件
 Actions

常规问答

From LimeSurvey Manual

本页面可能为机器翻译,可能包含错误。 查看英文原文 · 改进此翻译
This page is a translated version of the page General FAQ and the translation is 100% complete.
以下答案由 LimeSurvey 用户社区提供。如果有不清楚的地方,或者不确定下一步该怎么做,请在我们的论坛中向社区求助: https://forums.limesurvey.org 。如需专业帮助,请查看我们的授权合作伙伴列表: https://www.limesurvey.com 。


入门指南

如果您想在不阅读大半本手册的情况下了解 LimeSurvey 能做什么,可以观看我们在 YouTube 上的一些视频教程:


如果您知道好的视频,欢迎与我们分享。


在哪里可以找到 LimeSurvey 的快速入门介绍?

要快速了解 LimeSurvey,请参阅:


调查的设计和布局

如何从 URL 中删除 index.php 以获得更短的 URL?

如果您想使用更短的 URL(每个 URL 中不带 /index.php),请编辑 application/config/config.php,并在 urlManager 部分中修改

'showScriptName' => true,

为

'showScriptName' => false,

要在 Apache 上使其生效,必须启用 mod_rewrite,并且 LimeSurvey 自带的 .htaccess 文件必须位于 LimeSurvey 根目录中。 对于 nginx,请参阅我们的 LimeSurvey nginx 示例配置。


如何隐藏必答问题上的红色星号?

LimeSurvey 会在必答问题的问题文本开头显示一个红色星号。在 LimeSurvey 7.x 中,旁边还会显示“必须的”字样。要隐藏它们,请在您的调查主题中添加一条 CSS 规则:

  1. Fruity TwentyThree 等核心主题无法直接编辑。请先扩展主题,这样会创建一个可编辑的副本。
  2. 为该副本打开主题编辑器,并选择文件 custom.css。
  3. 添加以下一行:
.asterisk, .ls-question-mandatory {display: none;}


保存更改。然后在调查的常规设定中选择扩展后的主题。

这也会隐藏公开注册表单上的星号。

星号和“必须的”字样会告诉参与者(包括使用屏幕阅读器的参与者)哪些问题必须回答。如果您将其隐藏,请在问题文本或调查的欢迎文本中说明哪些问题是必答的。


我如何创建一个所有人都可以用的调查问卷?

要创建任何人都可以填写的调查,请不要创建调查参与者表。请分享概览面板中显示的调查链接。


如何将所有公开注册字段都设为必填?

如果您使用调查参与者表并同时允许公开注册,想要参与的人需要填写一份包含名、姓和电子邮件地址的注册表单。其中只有电子邮件地址是必填的:



要将名和姓也设为必填,请编辑您的调查主题的注册表单。对于 Fruity TwentyThree,请先扩展主题,为该副本打开主题编辑器,然后编辑文件 views/subviews/registration/register_form.twig。电子邮件字段展示了必填字段的构建方式:

        {# Participants email #}
        <div class='{{ aSurveyInfo.class.registerformcolrowc }} row mb-3' {{ aSurveyInfo.attr.registerformcolrowc }}>
            <label {{ aSurveyInfo.attr.registerformcolrowclabel }} class='{{ aSurveyInfo.class.registerformcolrowclabel }}  control-label'> {{ gT("E-mail") }} {{ include('./subviews/registration/required.twig') }}</label>
            <div {{ aSurveyInfo.attr.registerformcolrowcdiv }}  >
                {{ C.Html.emailField('register_email', aSurveyInfo.sEmail, ({'id' : 'register_email','class' : 'form-control ls-important-field','required' : true, 'placeholder' : gT('Enter e-mail address', 'unescaped')})) }}
            </div>
        </div>

以同样的方式修改名和姓字段:

  • 将 {{ include('./subviews/registration/required.twig') }} 添加到标签中。这样会显示星号。
  • 将 'required' : true 添加到文本字段的选项中。这样会使该字段成为必填。

编辑后的字段应如下所示(示例来自 LimeSurvey 7.x;在 6.x 中,占位文本不带 'unescaped'):

            {# Participants first name #}
            <div class='{{ aSurveyInfo.class.registerformcolrow }} col-md-6 col-12 mb-3 mb-md-0' {{ aSurveyInfo.attr.registerformcolrow }}>
                <label for='register_firstname' class='{{ aSurveyInfo.class.registerformcolrowlabel }} control-label '>{{ gT("First name") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
                <div class="">
                    {{ C.Html.textField('register_firstname', aSurveyInfo.sFirstName, ({'id' : 'register_firstname','class' : 'form-control ls-important-field', 'required' : true, 'placeholder' : gT('Enter your first name', 'unescaped') })) }} {# mandatory field #}
                </div>
            </div>

            {# Participants last name #}
            <div class='{{ aSurveyInfo.class.registerformcolrowb }} col-md-6 col-12' {{ aSurveyInfo.attr.registerformcolrowb }}>
                <label {{ aSurveyInfo.attr.registerformcolrowblabel }}  class='{{ aSurveyInfo.class.registerformcolrowblabel }} control-label '>{{ gT("Last name") }} {{ include('./subviews/registration/required.twig') }}</label> {# extra label #}
                <div {{ aSurveyInfo.attr.registerformcolrowbdiv }} >
                    {{ C.Html.textField('register_lastname', aSurveyInfo.sLastName, ({'id' : 'register_lastname', 'class' : 'form-control ls-important-field', 'required' : true, 'placeholder' : gT('Enter your last name', 'unescaped')})) }} {# mandatory field #}
                </div>
            </div>


现在,公开注册表单中的全部三个字段都显示为必填:



隐藏语言切换

如何隐藏语言切换器(在欢迎页面和顶部菜单中),请参阅多语言调查的提示与技巧。


隐藏“退出并清除调查”按钮

在 Fruity TwentyThree 中,“退出并清除调查”按钮由主题选项 Show 'Clear all' button(位于简单选项下)控制。该选项默认设置为否,因此只有开启该选项后,参与者才会看到此按钮。要隐藏该按钮,请在调查的主题选项中将该选项设置为否。


对于参与者会保存并稍后继续填写的长篇调查,隐藏此按钮很有用。点击“退出并清除调查”会删除他们尚未完成的反馈。

救命,我不小心...

我忘了密码,怎么重置密码?

使用命令行

  1. 通过命令行(例如使用 SSH)登录您的服务器。
  2. 确保您可以在命令行中运行 PHP(请参阅 PHP 文档)。
  3. 进入您的 LimeSurvey 目录。
  4. 运行以下命令:php application/commands/console.php resetpassword USERNAME NEWPASSWORD

USERNAME 是现有管理员账户的名称,例如 admin。如果找不到 php 命令,请使用其完整路径,例如 /usr/bin/php。新密码会保存在您的 shell 历史记录中,因此请在登录 LimeSurvey 后修改密码。

仅有 FTP 访问权限

使用第三方控制器 ResetPasswordController。重置密码后,请从 config.php 中再次删除该文件及其设置。


直接在数据库中修改

如果您可以直接访问 LimeSurvey 数据库,就可以在数据库中设置新密码。LimeSurvey 接受以 SHA-256 哈希值存储的密码,并会在该用户下次登录时将其替换为更安全的哈希值。

例如,在 MySQL 或 MariaDB 中,以下语句会将用户 admin 的密码设置为 newpassword:

UPDATE lime_users SET password = SHA2('newpassword', 256) WHERE users_name = 'admin';

在 PostgreSQL 中,请使用 encode(sha256('newpassword'), 'hex') 代替 SHA2('newpassword', 256)。如果您的表使用的前缀不是 lime_,请相应修改表名。请立即登录并修改密码。


我怎么恢复一个停用的调查?

我们建议始终让调查过期,而不是停用调查。如果您误将调查停用,请务必不要对该调查做任何更改!

只有在这种情况下,以下步骤才会生效:

  1. 再次激活您的调查。
  2. 打开该调查的反馈。
  3. 点击导入,然后选择“从已停用的调查表导入反馈”(LimeSurvey 6.x)或“从已归档的答复表导入反馈”(LimeSurvey 7.x)。
  4. 选择您的源表。
  5. 点击“导入”按钮。


要了解让调查过期与停用调查之间的区别,请参阅关闭调查。


我删除了一个问题/问题组/调查!

如果您删除了它,它就没了。只有备份才能帮助您恢复。


如果您使用 LimeSurvey Cloud,请提交支持工单,请团队恢复您账户的备份。请注意,此服务是收费的!


软硬件需求

有关一般需求,请参阅我们的安装说明。


LimeSurvey 有哪些限制...

...关于速度

LimeSurvey 本身没有速度限制,一切都取决于您的服务器及其网络连接的速度。如果您预计短时间内会有大量参与者,但不确定您的服务器能否胜任,请在我们的论坛中搜索类似主题,使用 LimeSurvey Cloud,或联系 LimeSurvey 授权合作伙伴。

...关于调查的尺寸

“调查大小”是指调查中问题(和答案)的数量——请不要将其与调查的反馈数量混淆(反馈数量没有限制)。LimeSurvey 本身对问题或答案的数量没有限制,但您使用的数据库有一些限制。其中最重要的是答复表的最大列数和一行的最大大小。

  注意 : 请在你要动手前先想想要做什么!一个10 x 10 的阵列也会占用100个列。经验法则:屏幕上每一个填写或是选择的项都会占一列!


MySQL 和 MariaDB

默认情况下,LimeSurvey 使用 MyISAM 存储引擎创建数据表。您可以在安装过程中改选 InnoDB。

  • MyISAM:一行最多 65,535 字节。LimeSurvey 使用的 utf8mb4 字符集中,一个字符最多可能占用四个字节,因此一行最少可能只能容纳 16,383 个字符。这通常是您最先遇到的限制。
  • InnoDB:一个表最多 1,017 列。

有关详细信息,请参阅 MySQL 文档。

你可以大致计算调查的尺寸:

  • 每个数字问题:每个答案 20个字符
  • 每个多选和阵列题:每个答案5个字符
  • 每个其他问题类型:5个字符
  • 再打 10% 的富裕

Microsoft SQL Server

Microsoft SQL Server 每个表最多允许 1,024 列,每行最多 8,060 字节(请参阅 Microsoft 文档)。即使您的调查可以激活,如果反馈中包含大量文本,参与者也可能无法提交。

激活后,在浏览或导出反馈时,8,060 字节的限制也可能导致错误。请导出回复编号而不是答案文本,或者只导出部分列。

PostgreSQL

PostgreSQL 每个表允许 250 到 1,600 列,具体取决于列的类型(请参阅 PostgreSQL 文档)。导出反馈时,您可能会遇到 SQLSTATE[54000] 错误。在这种情况下,请只导出部分列。请参见这篇论坛帖子。

如何增加PostgreSQL的最大列的数量

如果您的调查包含的问题过多,可以使用更大的块大小(例如 32 kB,配置选项 --with-blocksize=32)编译 PostgreSQL,以便在一行中容纳更多列。使用某一块大小创建的数据库无法被以其他块大小编译的 PostgreSQL 服务器使用,因此请在创建 LimeSurvey 数据库之前完成此操作。

有关分步说明,请参阅在 Linux 上增加 PostgreSQL 最大列数的说明。

致命错误:允许的内存尺寸

取决于你的系统配置,你可能在运行中遇到类似下面的内存问题 "致命错误: 允许的内存尺寸 8388608 bytes 耗尽 (尝试分配 233472 bytes) 在 /path/to/htdocs/limesurvey/filename.php 的 7296 行".

LimeSurvey 会设置自己的内存限制,默认为 256 MB。您可以通过在 LimeSurvey 的配置文件中添加可选设置 memory_limit 来提高该限制。

请注意,服务器 PHP 配置中设置的更高限制具有优先权。要将服务器的 PHP 内存限制提高到 512 MB,请添加:

  • memory_limit = 512M 到服务器的主 php.ini 文件(如果您有权限,推荐使用此方式)
  • php_value memory_limit 512M 到 LimeSurvey 根文件夹中的 .htaccess 文件(仅当 PHP 以 Apache 模块运行时)
  • memory_limit = 512M 到 LimeSurvey 根文件夹中的 php.ini 或 .user.ini 文件(适用于某些托管环境)

特殊配置

在某些情况下,您需要更新 application/config/config.php 中的 LimeSurvey 配置。

同一域名下的两个 LimeSurvey 实例

您可以在同一域名下运行多个 LimeSurvey 实例,例如 example.org/ls1 和 example.org/ls2。每个实例都需要有自己的会话 Cookie 名称,该名称通过 application/config/config.php 中 session 部分的 sessionName 进行设置。安装程序会设置一个随机名称,因此全新安装无需任何更改。

如果您将 config.php 从一个实例复制到了另一个实例,或者您的 config.php 来自早于 LimeSurvey 4.0 的版本,请检查每个实例是否有各自独立的值。否则,登录其中一个实例会使您退出另一个实例。请在现有的 session 部分中添加或修改 sessionName 行,例如在 ls1 的配置文件中:

        'session' => array (
            'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
        ),

请在 ls2 的配置文件中使用另一个不同的随机值。另请参阅会话设置。