Câu hỏi thường gặp chung
From LimeSurvey Manual
Bắt đầu
Để hiểu nhanh những gì bạn có thể làm với LimeSurvey mà không cần đọc một nửa hướng dẫn, hãy xem một số video hướng dẫn của chúng tôi trên YouTube:
- Cách thiết lập tài khoản và cài đặt khảo sát
- Loại Câu Hỏi: Mảng
- Đánh giá
- Trường giữ chỗ
- Loại Câu Hỏi: Danh sách radio
- Sao chép/tải nhập khảo sát
- Nhập câu hỏi
Tôi có thể tìm phần giới thiệu nhanh về LimeSurvey ở đâu?
Để xem phần giới thiệu nhanh bằng văn bản về LimeSurvey, hãy tham khảo:
- Hướng dẫn bắt đầu nhanh với LimeSurvey Cloud – tạo và xuất bản khảo sát đầu tiên của bạn trong LimeSurvey Cloud
- Cài đặt LimeSurvey Community Edition – nếu bạn muốn chạy LimeSurvey trên máy chủ của riêng mình
Thiết kế và bố trí khảo sát
Làm cách nào để xóa index.php khỏi URL để có URL ngắn hơn?
Nếu bạn muốn sử dụng URL ngắn hơn (không có /index.php trong mọi URL), hãy chỉnh sửa application/config/config.php và trong phần urlManager, thay đổi
'showScriptName' => đúng,
ĐẾN
'showScriptName' => sai,
Để tính năng này hoạt động trên Apache, phải bật mod_rewrite và tệp .htaccess đi kèm với LimeSurvey phải nằm trong thư mục gốc của LimeSurvey. Đối với nginx, hãy xem cấu hình nginx mẫu của LimeSurvey.
Làm cách nào để ẩn dấu hoa thị màu đỏ trong các câu hỏi bắt buộc?
LimeSurvey hiển thị dấu hoa thị màu đỏ ở đầu văn bản câu hỏi của các câu hỏi bắt buộc. Trong LimeSurvey 7.x, từ "Yêu cầu" cũng được hiển thị bên cạnh. Để ẩn chúng, hãy thêm một quy tắc CSS vào chủ đề khảo sát của bạn:
- Các chủ đề lõi như Fruity TwentyThree không thể chỉnh sửa trực tiếp. Trước tiên hãy mở rộng chủ đề. Thao tác này sẽ tạo một bản sao có thể chỉnh sửa.
- Mở trình chỉnh sửa chủ đề cho bản sao và chọn tệp custom.css.
- Thêm dòng sau:
.asterisk, .ls-question-mandatory {display: none;}
Lưu các thay đổi. Sau đó chọn chủ đề đã mở rộng trong Thiết lập tổng quát của khảo sát.
Thao tác này cũng ẩn dấu hoa thị trên biểu mẫu đăng ký công khai.
Làm cách nào để tạo một cuộc khảo sát dành cho tất cả mọi người?
Để tạo một khảo sát mà bất kỳ ai cũng có thể điền, đừng tạo bảng người tham gia khảo sát. Hãy chia sẻ liên kết khảo sát được hiển thị trên bảng tổng quan.
Làm cách nào để đặt tất cả các trường đăng ký công khai là bắt buộc?
Nếu bạn sử dụng bảng người tham gia khảo sát và cũng cho phép đăng ký công khai, những người muốn tham gia sẽ điền vào biểu mẫu đăng ký gồm họ, tên và địa chỉ email. Chỉ có địa chỉ email là bắt buộc:

Để đặt họ và tên cũng là bắt buộc, hãy chỉnh sửa biểu mẫu đăng ký của chủ đề khảo sát. Với Fruity TwentyThree, trước tiên hãy mở rộng chủ đề, mở trình chỉnh sửa chủ đề cho bản sao và chỉnh sửa tệp views/subviews/registration/register_form.twig. Trường email cho thấy cách xây dựng một trường bắt buộc:
{# 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>
Thay đổi các trường họ và tên theo cách tương tự:
- Thêm
{{ include('./subviews/registration/required.twig') }}vào nhãn. Thao tác này hiển thị dấu hoa thị. - Thêm
'required' : truevào các tùy chọn của trường văn bản. Thao tác này đặt trường là bắt buộc.
Các trường sau khi chỉnh sửa sẽ trông như sau (ví dụ này lấy từ LimeSurvey 7.x; trong 6.x, các văn bản giữ chỗ được viết không có '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>
Biểu mẫu đăng ký công khai giờ hiển thị cả ba trường là bắt buộc:

Ẩn trình chuyển đổi ngôn ngữ
Cách ẩn các trình chuyển đổi ngôn ngữ (trên trang chào mừng và trong menu trên cùng) được mô tả trong mẹo và gợi ý cho khảo sát đa ngôn ngữ.
Ẩn nút "Thoát"
Trong Fruity TwentyThree, nút "Thoát" được điều khiển bởi tùy chọn chủ đề Hiển thị nút “Làm sạch tất cả” (trong Lựa chọn đơn giản). Theo mặc định, tùy chọn này được đặt là Không, vì vậy người tham gia chỉ thấy nút này nếu tùy chọn đã được bật. Để ẩn nút, hãy đặt tùy chọn là Không trong các chủ đề tùy chọn của khảo sát.
Cứu với, tôi vô tình...
Tôi quên mật khẩu quản trị viên của mình. Làm cách nào để thiết lập lại?
Sử dụng dòng lệnh
- Đăng nhập vào máy chủ của bạn bằng dòng lệnh (ví dụ: bằng SSH).
- Đảm bảo bạn có thể chạy PHP từ dòng lệnh (xem tài liệu PHP).
- Chuyển đến thư mục LimeSurvey của bạn.
- Chạy lệnh này:
php application/commands/console.php resetpassword USERNAME NEWPASSWORD
USERNAME là tên của một tài khoản quản trị viên hiện có, ví dụ admin. Nếu không tìm thấy lệnh php, hãy dùng đường dẫn đầy đủ của lệnh, ví dụ /usr/bin/php. Mật khẩu mới được lưu trong lịch sử shell của bạn, vì vậy hãy đổi mật khẩu trong LimeSurvey sau khi bạn đã đăng nhập.
Chỉ có quyền truy cập FTP
Hãy dùng bộ điều khiển của bên thứ ba ResetPasswordController. Sau khi đã đặt lại mật khẩu, hãy xóa tệp này và các cài đặt của nó khỏi config.php.
Trực tiếp trong cơ sở dữ liệu
Nếu bạn có quyền truy cập trực tiếp vào cơ sở dữ liệu LimeSurvey, bạn có thể đặt mật khẩu mới tại đó. LimeSurvey chấp nhận mật khẩu được lưu dưới dạng hàm băm SHA-256 và sẽ thay thế nó bằng một hàm băm an toàn hơn vào lần đăng nhập tiếp theo của người dùng.
Ví dụ: trong MySQL hoặc MariaDB, lệnh sau đặt mật khẩu của người dùng admin thành newpassword:
UPDATE lime_users SET password = SHA2('newpassword', 256) WHERE users_name = 'admin';
Trong PostgreSQL, hãy dùng encode(sha256('newpassword'), 'hex') thay cho SHA2('newpassword', 256). Nếu các bảng của bạn dùng tiền tố khác với lime_, hãy thay đổi tên bảng cho phù hợp. Hãy đăng nhập và đổi mật khẩu ngay.
Làm cách nào tôi có thể khôi phục dữ liệu từ một khảo sát đã bị hủy kích hoạt?
Chúng tôi khuyên bạn nên luôn cho khảo sát hết hạn thay vì hủy kích hoạt nó. Nếu bạn đã hủy kích hoạt khảo sát do nhầm lẫn, điều quan trọng là bạn không được thay đổi bất kỳ điều gì trong khảo sát!
Khi đó, và chỉ khi đó, các bước sau mới có tác dụng:
- Kích hoạt lại khảo sát của bạn.
- Mở trang phản hồi của khảo sát.
- Nhấp vào Nhập và chọn "Nhập phản hồi từ bảng khảo sát đã hủy kích hoạt" (LimeSurvey 6.x) hoặc "Nhập phản hồi từ bảng phản hồi đã lưu trữ" (LimeSurvey 7.x).
- Chọn Bảng nguồn của bạn.
- Nhấp vào nút "Nhập".
Tôi đã xóa câu hỏi/nhóm câu hỏi/khảo sát!
Nếu bạn xóa nó, nó sẽ biến mất. Chỉ có bản sao lưu mới có thể giúp bạn khôi phục nó.
Yêu cầu phần cứng và phần mềm
Để biết các yêu cầu chung, vui lòng tham khảo hướng dẫn cài đặt của chúng tôi.
LimeSurvey có những hạn chế gì...
...về tốc độ
LimeSurvey không có giới hạn tốc độ. Mọi thứ phụ thuộc vào tốc độ máy chủ và kết nối của bạn. Nếu bạn dự đoán sẽ có nhiều người tham gia trong một khoảng thời gian ngắn và không chắc máy chủ của mình có thể xử lý được hay không, hãy tìm kiếm các chủ đề tương tự trên diễn đàn của chúng tôi, sử dụng LimeSurvey Cloud, hoặc liên hệ với một đối tác được ủy quyền của LimeSurvey.
...liên quan đến quy mô khảo sát
'Quy mô khảo sát' đề cập đến số lượng câu hỏi (và câu trả lời) trong khảo sát của bạn – đừng nhầm lẫn điều này với số lượng phản hồi cho khảo sát của bạn (không có giới hạn về điều đó). Bản thân LimeSurvey không giới hạn số lượng câu hỏi hoặc câu trả lời, nhưng cơ sở dữ liệu bạn sử dụng có một số giới hạn. Quan trọng nhất là số cột tối đa trong bảng phản hồi và kích thước tối đa của một hàng.
MySQL và MariaDB
Theo mặc định, LimeSurvey tạo các bảng của mình bằng công cụ lưu trữ MyISAM. Bạn có thể chọn InnoDB thay thế trong quá trình cài đặt.
- MyISAM: Một hàng có thể có tối đa 65.535 byte. Với bộ ký tự utf8mb4 mà LimeSurvey sử dụng, một ký tự có thể cần tới bốn byte, do đó một hàng có thể chỉ chứa được 16.383 ký tự. Đây thường là giới hạn đầu tiên bạn gặp phải.
- InnoDB: Một bảng có thể có tối đa 1.017 cột.
Để biết chi tiết, xem tài liệu MySQL.
Bạn có thể tính toán đại khái quy mô khảo sát của mình như thế này:
- Mỗi câu hỏi nhiều số: 20 ký tự cho mỗi câu trả lời
- Mỗi câu hỏi trắc nghiệm & câu hỏi mảng: 5 ký tự cho mỗi câu trả lời
- Mọi loại câu hỏi khác: 5 ký tự
- Thêm 10% cho chi phí thông thường
Microsoft SQL Server
Microsoft SQL Server cho phép tối đa 1.024 cột trên mỗi bảng và 8.060 byte trên mỗi hàng (xem tài liệu của Microsoft). Ngay cả khi khảo sát của bạn có thể được kích hoạt, người tham gia vẫn có thể không gửi được phản hồi nếu phản hồi chứa nhiều văn bản.
Giới hạn 8.060 byte cũng có thể gây ra lỗi sau khi kích hoạt khi bạn duyệt hoặc xuất phản hồi. Hãy xuất mã câu trả lời thay vì văn bản câu trả lời, hoặc chỉ xuất một số cột.
PostgreSQL
PostgreSQL cho phép từ 250 đến 1.600 cột trên mỗi bảng, tùy thuộc vào kiểu cột (xem tài liệu PostgreSQL). Khi xuất phản hồi, bạn có thể gặp lỗi SQLSTATE[54000]. Trong trường hợp đó, hãy chỉ xuất một số cột. Xem bài đăng trên diễn đàn này.
Cách tăng số lượng cột tối đa trong PostgreSQL
Nếu khảo sát của bạn có quá nhiều câu hỏi, bạn có thể biên dịch PostgreSQL với kích thước khối lớn hơn, ví dụ 32 kB (tùy chọn cấu hình --with-blocksize=32), để chứa được nhiều cột hơn trong một hàng. Cơ sở dữ liệu được tạo với một kích thước khối không thể được sử dụng bởi máy chủ PostgreSQL được biên dịch với kích thước khối khác, vì vậy hãy thực hiện việc này trước khi bạn tạo cơ sở dữ liệu LimeSurvey.
Để xem hướng dẫn từng bước, xem Hướng dẫn tăng số lượng cột tối đa trong PostgreSQL trên Linux.
Lỗi nghiêm trọng: Kích thước bộ nhớ cho phép
Tùy thuộc vào cấu hình máy chủ của bạn, bạn có thể gặp phải các vấn đề về bộ nhớ được báo cáo bởi một lỗi như "Lỗi nghiêm trọng: Kích thước bộ nhớ cho phép đã hết 8388608 byte (đã cố phân bổ 233472 byte) trong /path/to/htdocs/limesurvey/filename.php trên đường dây 7296".
LimeSurvey đặt giới hạn bộ nhớ riêng, mặc định là 256 MB. Bạn có thể tăng giới hạn này bằng cách thêm cài đặt tùy chọn memory_limit vào tệp cấu hình của LimeSurvey.
Xin lưu ý rằng giới hạn cao hơn được đặt trong cấu hình PHP của máy chủ sẽ được ưu tiên. Để tăng giới hạn bộ nhớ PHP của máy chủ lên 512 MB, hãy thêm:
memory_limit = 512Mvào tệp php.ini chính của máy chủ (được khuyến nghị, nếu bạn có quyền truy cập)php_value memory_limit 512Mvào tệp .htaccess trong thư mục gốc của LimeSurvey (chỉ khi PHP chạy dưới dạng mô-đun Apache)memory_limit = 512Mvào tệp php.ini hoặc .user.ini trong thư mục gốc của LimeSurvey (trên một số cấu hình lưu trữ web)
Cấu hình cụ thể
Trong một số trường hợp nhất định, bạn cần cập nhật cấu hình LimeSurvey trong application/config/config.php.
Hai phiên bản LimeSurvey trên cùng một tên miền
Bạn có thể chạy nhiều phiên bản LimeSurvey trên cùng một tên miền, ví dụ example.org/ls1 và example.org/ls2. Mỗi phiên bản cần có tên cookie phiên riêng, được đặt bằng sessionName trong phần session của application/config/config.php. Trình cài đặt sẽ đặt một tên ngẫu nhiên, vì vậy bản cài đặt mới không cần thay đổi gì.
Nếu bạn đã sao chép config.php từ phiên bản này sang phiên bản khác, hoặc config.php của bạn đến từ phiên bản cũ hơn LimeSurvey 4.0, hãy kiểm tra xem mỗi phiên bản có giá trị riêng hay không. Nếu không, việc đăng nhập vào một phiên bản sẽ đăng xuất bạn khỏi phiên bản còn lại. Hãy thêm hoặc thay đổi dòng sessionName trong phần session hiện có, ví dụ trong tệp cấu hình của ls1:
'session' => array (
'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
),
Hãy dùng một giá trị ngẫu nhiên khác trong tệp cấu hình của ls2. Xem thêm cài đặt phiên.