시험 모듈 문항 수정 시 오류 발생
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 8.3 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
시험 모듈(https://github.com/YJSoft/rx-module-exam)을 사용하고 있습니다. PHP 8.x다 보니 여러 오류들은 코드 줄 수를 보면서 수정했습니다. '관리 -> 시험 편집'에서 특정 문항을 수정/삭제 시 다음과 같이 오류가 발생합니다:
대상을 찾을 수 없습니다.
modules/exam/exam.view.php:417
혹시 몰라 exam 폴더를 압축하여 올려드립니다.
-----
디버그 탭에서 나온 항목들은 다음과 같습니다:
General Information
Request: GET
Response: HTML - 5869 bytes
Memory Usage: 1.30MB
Total Time: 0.0221 sec
Query Time: 0.0015 sec (count: 5)
Errors (12)
01. Warning: Undefined property: stdClass::$full_cache
modules/supercache/supercache.controller.php:73
classes/module/ModuleHandler.class.php:1330
classes/module/ModuleHandler.class.php:109
index.php:59
02. Warning: Attempt to read property "is_skin_fix" on null
modules/module/module.model.php:429
modules/module/module.model.php:191
classes/module/ModuleHandler.class.php:755
classes/module/ModuleHandler.class.php:188
index.php:60
03. Warning: Attempt to read property "is_mskin_fix" on null
modules/module/module.model.php:434
modules/module/module.model.php:191
classes/module/ModuleHandler.class.php:755
classes/module/ModuleHandler.class.php:188
index.php:60
04. Warning: Attempt to read property "module_srl" on null
modules/module/module.model.php:513
modules/module/module.model.php:192
classes/module/ModuleHandler.class.php:755
classes/module/ModuleHandler.class.php:188
index.php:60
05. Warning: Undefined property: stdClass::$full_cache
modules/supercache/supercache.controller.php:88
classes/module/ModuleHandler.class.php:1330
classes/module/ModuleHandler.class.php:300
index.php:60
06. Warning: Undefined property: stdClass::$paging_cache
modules/supercache/supercache.controller.php:94
classes/module/ModuleHandler.class.php:1330
classes/module/ModuleHandler.class.php:300
index.php:60
07. Warning: Undefined property: stdClass::$exam_pass_group_list
modules/exam/exam.view.php:27
classes/module/ModuleObject.class.php:233
classes/module/ModuleHandler.class.php:667
index.php:60
08. Warning: Undefined global variable $XE_EXAM_LIST
modules/exam/exam.model.php:62
modules/exam/exam.view.php:408
classes/module/ModuleObject.class.php:775
classes/module/ModuleHandler.class.php:697
index.php:60
09. Warning: Trying to access array offset on null
modules/exam/exam.model.php:62
modules/exam/exam.view.php:408
classes/module/ModuleObject.class.php:775
classes/module/ModuleHandler.class.php:697
index.php:60
10. Warning: Array to string conversion
classes/object/Object.class.php:151
classes/object/Object.class.php:45
modules/exam/exam.model.php:226
modules/exam/exam.view.php:416
classes/module/ModuleObject.class.php:775
classes/module/ModuleHandler.class.php:697
index.php:60
11. Warning: Undefined property: stdClass::$widget_cache
modules/supercache/supercache.controller.php:681
classes/module/ModuleHandler.class.php:1330
classes/module/ModuleHandler.class.php:1001
index.php:60
12. Warning: Undefined property: stdClass::$widget_cache
modules/supercache/supercache.controller.php:711
classes/module/ModuleHandler.class.php:1330
classes/display/DisplayHandler.class.php:70
classes/module/ModuleHandler.class.php:1201
index.php:60
Queries (6)
01. SELECT `modules`.*, `documents`.`is_notice`, `documents`.`status` FROM `rx_modules` AS `modules`, `rx_documents` AS `documents` WHERE `documents`.`document_srl` = ? AND `modules`.`module_srl` = `documents`.`module_srl`
Caller: modules/module/module.model.php:183
(ModuleModel::getModuleInfoByDocumentSrl)
Connection: master
Query ID: module.getModuleInfoByDocument
Query Time: 0.0003 sec
Result: success
02. SELECT * FROM `rx_documents` AS `documents` WHERE `document_srl` = ?
Caller: modules/document/document.item.php:118 (×2)
(DocumentItem->_loadFromDB)
Connection: master
Query ID: document.getDocument
Query Time: 0.0004 sec
Result: success
03. SELECT * FROM `rx_exam` AS `exam` WHERE `document_srl` = ?
Caller: modules/exam/exam.item.php:75
(examItem->_loadFromDB)
Connection: master
Query ID: exam.getExam
Query Time: 0.0003 sec
Result: success
04. SELECT COUNT(*) AS `count` FROM `rx_ncenterlite_notify` AS `ncenterlite_notify` USE INDEX (`idx_member_srl_and_readed`) WHERE `member_srl` = ? AND `readed` = ?
Caller: modules/ncenterlite/ncenterlite.model.php:413
(NcenterliteModel->_getMyNotifyList)
Connection: master
Query ID: ncenterlite.getNotifyList (count)
Query Time: 0.0003 sec
Result: success
05. SELECT * FROM `rx_ncenterlite_notify` AS `ncenterlite_notify` USE INDEX (`idx_member_srl_and_readed`) WHERE `member_srl` = ? AND `readed` = ? ORDER BY `regdate` DESC LIMIT 5
Caller: modules/ncenterlite/ncenterlite.model.php:413
(NcenterliteModel->_getMyNotifyList)
Connection: master
Query ID: ncenterlite.getNotifyList
Query Time: 0.0002 sec
Result: success
브라우저 개발자도구 콘솔창에서는 이렇게 뜹니다:
GET https://board.sd-drone.com/index.php?mid=test_exam&document_srl=340&act=dispExamEditMode&mode=write&question_srl=341 403 (Forbidden)
테스트용 계정은 다음과 같습니다:
URL: https://board.sd-drone.com/test_exam
아이디: test12
비밀번호: test1234
[서버 환경]
라이믹스 버전: 2.1.21
PHP 버전: 8.3.6
댓글 6
function questionItem($question_srl = 0, $columnList = array())
을
function __construct($question_srl = 0, $columnList = array())
로 수정해주세요.
exam.tar.gz 파일(게시글 본문 하단)에서 YJSoft님이 답변해 주신 부분만 수정중입니다.
TypeError #0 "Argument 1 passed to Rhymix\Modules\Extravar\Models\Value::__construct() must be of the type int, null given, called in /volume1/web/oxythus/modules/exam/exam.model.php on line 26" in modules/extravar/models/Value.php on line 91
modules/extravar/models/Value.php:91
아직 php7.4라 한번 시도해봤는데..