답변 10개 / 댓글 3개
앞의 답변에서 입력창 표시 조건과 이미지 로딩을 다뤄 주셨는데, 표시 문제를 해결한 뒤에도 같은 오류가 나면 세션이 이어지는지도 확인할 수 있습니다. 질문에 적으신 5.6.34 기본 Kcaptcha는 제출한 captcha_key를 세션에 저장된 값과 비교하므로, 숫자 이미지가 정상이어도 저장 요청에서 세션이 달라지면 검증에 실패할 수 있습니다.
확인은 아래 순서로 나누면 됩니다.
- 다른 관리자 탭은 닫고 설정 화면 하나에서 캡차를 새로 불러와 바로 저장해 보세요. 동시에 여러 화면에서 인증값을 새로 만드는 영향을 먼저 배제하기 위한 확인입니다.
- F12 → Network에서 저장 요청의 Form Data에 captcha_key 항목이 있는지만 확인하세요. 없다면 입력창이 실제 저장 form에 포함됐는지, 사용 중인 JavaScript 전송 코드가 그 필드를 누락하는지 확인할 대상입니다.
- 항목이 있는데 실패한다면, 캡차 요청과 저장 요청이 같은 https/www 호스트로 가는지, 해당 요청에 사이트 세션 쿠키가 전달되는지 본인 브라우저에서 비교해 보세요. 쿠키의 domain/path 범위가 다르면 같은 사이트처럼 보여도 세션이 이어지지 않을 수 있습니다.
입력 영역 자체가 안 보이는 동안에는 앞 답변의 표시 조건·JavaScript 점검이 우선입니다. 이것이 실제 원인이라고 확정한 답변은 아니며, 원인 확인 없이 캡차 검사 코드를 지우거나 보안 쿠키 설정을 낮추지는 마세요. 추가 질문에는 필드 존재 여부와 요청 경로 차이만 적고 캡차 값·쿠키·세션 ID 원문은 올리지 않으셔도 됩니다.
기준 소스: https://github.com/gnuboard/gnuboard5/blob/v5.6.34/plugin/kcaptcha/kcaptcha.lib.php
PHP 세션 식별 설명: https://www.php.net/manual/en/function.session-start.php
이미지 요청이 404라면 요청 경로와 파일 존재 여부, 403이면 서버 접근 차단 여부, 500이면 같은 시각의 PHP 오류 로그를 확인할 대상입니다. 상태가 200이어도 Preview에서 실제 숫자 이미지인지 확인해 주세요. PHP 경고문이나 HTML이 이미지 대신 반환되면 그 내용과 서버 로그로 원인을 좁혀야 합니다. 이미지 요청 자체가 없다면 그 앞의 세션 요청과 JavaScript 오류부터 확인할 수 있습니다.
입력 영역 자체가 없다면 앞 답변에서 설명한 표시 조건 점검이 먼저입니다. 실제 사이트를 확인하지 않아 원인을 단정한 것은 아닙니다. 추가 확인 시에는 실패한 파일명·상태 코드·민감정보를 지운 오류 한 줄 정도만 공유하시고, 쿠키·세션값·비밀키는 제외해 주세요.
공식 요청 흐름: https://github.com/gnuboard/gnuboard5/blob/v5.6.34/plugin/kcaptcha/kcaptcha.js
안녕하세요. 말씀하신 증상은 관리자 페이지에서 설정을 저장할 때 자동등록방지 인증이 필요한데, 해당 입력창이 정상적으로 표시되지 않아 발생하는 문제일 가능성이 있습니다.
그누보드에서는 최고관리자 정보나 일부 스크립트, 메타태그 등의 설정을 변경할 때 추가 인증을 요구하는 경우가 있습니다. 우선 관리자 기본환경설정 페이지 하단에 자동등록방지 입력란이 있는지 확인해 보시면 좋겠습니다.
입력란 자체가 나타나지 않는다면 브라우저의 자바스크립트 오류나 캡차 관련 파일이 정상적으로 불러와지는지 확인할 필요가 있습니다. 특히 관리자 설정 화면과 저장 처리 파일의 버전이 서로 다른 경우에도 문제가 발생할 수 있으므로, 현재 사용 중인 그누보드 원본 파일과 비교해 보시는 것을 추천드립니다.
가능하다면 어떤 설정을 변경할 때 오류가 발생하는지 확인해 보세요. 모든 설정에서 같은 오류가 발생하는지, 특정 항목에서만 발생하는지에 따라 원인을 좁힐 수 있을 것 같습니다.
자동등록방지 검사 기능을 임의로 삭제하기보다는 정상적으로 표시되고 작동하도록 수정하는 것이 안전하다고 생각합니다.
이 버전은 **최고관리자, 방문자분석 스크립트, 추가 메타태그, 추가 script·css**를 변경할 때 별도의 캡차 검증을 요구합니다. Kcaptcha를 사용 중이라면 입력할 곳은 환경설정 페이지 하단의 **캡챠입력** 영역입니다. 평소에는 숨겨져 있다가 해당 항목이 바뀌면 나타나는 구조입니다.
위 항목을 수정 중인데 입력 영역이 나타나지 않는다면, 개발자도구 Console의 첫 JavaScript 오류와 Network의 스크립트 로딩 실패부터 확인해 보세요. 화면을 만드는 adm/config_form.php와 저장하는 adm/config_form_update.php가 서로 다른 버전이거나 사용자 수정 내용이 섞였는지도 같은 배포본과 비교할 대상입니다. 현재 글만으로 원인을 확정하는 것은 아닙니다.
저장 쪽 캡차 검사 코드를 삭제하기보다는, 보여야 할 입력창과 검증 흐름을 정상화하는 방향으로 확인해 주세요. 기본환경설정 외의 화면이라면 정확한 파일 경로와 변경한 설정 항목이 필요합니다. 비밀번호·쿠키·비밀키는 공개하지 않으셔도 됩니다.
근거: [공식 5.6.34 입력창·표시 조건](https://github.com/gnuboard/gnuboard5/blob/v5.6.34/adm/config_form.php#L1619-L1789) / [저장 시 검사 조건](https://github.com/gnuboard/gnuboard5/blob/v5.6.34/adm/config_form_update.php#L192-L217)
공식 소스를 AI 도구로 대조한 조건부 진단이며, 질문자님의 사이트에서 재현·검증한 결과는 아닙니다.
답변에 대한 댓글 3개
답변을 작성하려면 로그인이 필요합니다.
초보라 어떤 말씀인지 모르겠습니다 ㅠㅠ
현재 버젼은 Version 5.6.34 PHP 8.3