x

主要章節

  1. LimeSurvey Cloud 與 LimeSurvey CE 的差異
  2. LimeSurvey Cloud - 快速入門指南
  3. 安裝 - LimeSurvey CE
  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 的快速文字介紹,請參閱:


問卷設計與版面配置

如何從網址中移除 index.php 以取得較短的網址?

如果您想使用較短的網址(不在每個網址中包含 /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(位於簡易選項下)控制。此選項預設為 No,因此只有在該選項被開啟時,參與者才會看到此按鈕。若要隱藏按鈕,請在問卷的佈景主題選項中將該選項設為 No。


如果問卷較長,且參與者會先儲存、稍後再繼續填寫,隱藏此按鈕會很有幫助。點選「離開並清除問卷」會刪除其部分完成的作答結果。

糟糕,我不小心...

我忘記了管理員密碼,該如何重設?

使用命令列

  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. 按一下匯入,然後選擇「Import responses from a deactivated survey table」(LimeSurvey 6.x) 或「Import responses from an archived response table」(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 最大欄位數的說明。

嚴重錯誤:已達允許的記憶體大小上限

視您的伺服器設定而定,可能會遇到記憶體問題,並顯示類似以下的錯誤訊息:"Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 233472 bytes) in /path/to/htdocs/limesurvey/filename.php on line 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 的設定檔中使用不同的隨機值。另請參閱工作階段設定。