찾다
PHP 프레임워크ThinkPHPThinkPHP 인증코드가 표시되지 않는 문제 해결

다음 thinkphpframework 튜토리얼 칼럼에서는 ThinkPHP 인증 코드가 표시되지 않는 문제에 대한 해결책을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

ThinkPHP 인증코드가 표시되지 않는 문제 해결

오늘 아주 이상한 BUG를 만났습니다. 즉, 로컬에서 정상적으로 실행되는 PHP 프로그램을 작성했는데 A측 서버에 공개하면 인증코드가 표시되지 않는 BUG가 있습니다.

ThinkPHP 인증코드가 표시되지 않는 문제 해결

구체적인 증상은 Chrome 브라우저에 작은 깨진 사진 아이콘이 표시된다는 것입니다. 사진을 마우스 오른쪽 버튼으로 클릭하여 새 창에서 열면 여전히 작은 깨진 사진이며 오류 메시지가 아닙니다(켜기). xdebug 확장자 및 php 오류 메시지) 경우) 이 경우에는 인증코드 URL 라우팅 및 비즈니스 로직 코드에는 문제가 없으나, 인증코드 생성 과정에 문제가 있다는 의미입니다. 아이디어는 다음과 같습니다:

1. GD 라이브러리가 올바르게 설치되었는지 확인하십시오. Linux에서는 yum 또는 apt 또는 pecl을 사용하여 설치하는 것이 좋습니다. Windows에서는 일반적으로 사용되는 확장 기능이 통합되어 있어 간단히 열 수 있습니다. 마우스 오른쪽 버튼을 클릭합니다. (새 창에서 인증코드 이미지를 열었을 때 오류 메시지와 글자가 깨져 보이는 경우에 해당됩니다. 오류 메시지가 있는 경우 오류 메시지에 따라 디버깅해 주세요.)

ThinkPHP 인증코드가 표시되지 않는 문제 해결

2. 인증 코드에서 호출한 글꼴이 누락되었습니다. 인증 코드 구성요소에서 호출되는 일부 글꼴이 대상 컴퓨터에 설치되어 있지 않습니다. 이를 위해서는 인증 코드 모듈의 소스 코드 분석이 필요합니다. 저는 ThinkPHP의 공식 think-captcha를 사용하고 있습니다. Vendortopthinkthink-captchasrc에서 소스 코드를 찾을 수 있습니다. 이 검증 코드 플러그인은 자체 글꼴과 함께 제공되므로 ThinkPHP의 검증 코드는 기본적으로 필요하지 않습니다. 글꼴 문제, 다른 인증 코드 플러그인인 경우에도 이 곳을 확인해야 합니다.

3. 버그가 있는 인증코드 이미지와 로컬 테스트 일반 인증코드 이미지를 다운받아 메모장을 이용하여 비교해 보세요.

ThinkPHP 인증코드가 표시되지 않는 문제 해결

위 사진은 로컬 환경에서의 인증코드 이미지를 메모장으로 하여 파일 차이를 분석하고 있습니다.

ThinkPHP 인증코드가 표시되지 않는 문제 해결

그림에서 볼 수 있듯이, 잘못된 파일인 bad에는 앞에 EF BB BF와 다른 숫자가 추가된 것을 제외하고는 내용이 정확히 동일하다는 것을 발견했습니다. 이는 PHP가 렌더링할 때 이러한 추가 단어를 렌더링한다는 것을 의미합니다. image. 이유는 아마도 서버에 전문적인 코드 편집기가 없어서 운영 및 유지보수 담당자가 일반 Windows 메모장을 사용하여 PHP 코드를 수정했기 때문에 이 BOM 헤더가 추가되었기 때문일 것입니다.

세 번째 이유라면 두 가지 해결 방법이 있습니다. 하나는 인증 코드의 imagepng 출력 이미지 코드를 호출하기 전에 ob_clean을 사용하여 PHP의 출력 버퍼를 지우는 것입니다. 코드의 BOM을 일괄적으로 제거하기 위해 일부 도구를 사용하는 경우도 있습니다.

ThinkPHP 인증코드가 표시되지 않는 문제 해결

여기서는 ob_clean을 사용하는데 think-captcha의 메인 파일인 Captcha.php의 203번째 줄 앞에 ob_clean()을 추가하면 한번에 해결이 됩니다. 성능과 안정성에 대한 엄격한 요구 사항이 있는 경우 BOM을 일괄 제거하는 도구를 사용하는 것이 더 안전합니다. 동시에, 언제든지 서버에 editplus와 같은 전문 코드 편집기를 설치하는 것도 권장됩니다. 코드를 수정하기 위해 Windows 메모장을 사용하지 마십시오.

위 내용은 ThinkPHP 인증코드가 표시되지 않는 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는