PHP 인증코드가 사진으로 나오지 않으면 어떻게 해야 하나요?

藏色散人
풀어 주다: 2023-03-07 21:54:01
원래의
2490명이 탐색했습니다.

PHP 확인 코드가 이미지를 표시하지 않는 문제에 대한 해결 방법: 1. php.ini 파일의 ";extension=php_gd2.dll"에서 세미콜론을 제거합니다. 2. 코드의 인코딩 형식을 BOM-으로 변경합니다. 3. ob_clean을 사용하여 캐시를 지웁니다.

PHP 인증코드가 사진으로 나오지 않으면 어떻게 해야 하나요?

권장: "PHP 비디오 튜토리얼"

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 5.6. 이 방법은 모든 브랜드의 컴퓨터에 적합합니다.

PHP 인증 코드에 사진이 표시되지 않는 문제에 대한 해결 방법:

problem


오늘은 로컬에서 새 가상 호스트를 만들고 이전에 작성한 작은 PHP 웹사이트를 배포했습니다. 이전에 wamp를 사용했기 때문입니다. 통합 환경이므로 이런 상황은 발생하지 않습니다. 그런데 갑자기 인증코드를 생성할 수 없는 것을 발견했습니다.

그래서 버그를 찾기 위한 여정을 시작했습니다. 인터넷에서 많은 솔루션을 검색하고 마침내 해결했습니다. 이제 다음과 같이 공유합니다.

bug1

위의 상황이 발생하면 가장 기본적인 실수는 다음과 같습니다. PHP에서는 잊어버릴 가능성이 높습니다. gd 모듈이 설치되어 있습니다.

윈도우 환경에서는 php.ini 파일에서만 찾으시면 됩니다

;extension=php_gd2.dll
로그인 후 복사

아파치를 다시 시작한 후 phpinfo()

앞에 있는 세미콜론만 제거하시면 됩니다. 우분투 환경에서는 gd 모듈을 설치해야 합니다. 명령은

sudo apt-get install php5-gd
로그인 후 복사

설치 후 위 모듈도 볼 수 있습니다.

bug2

위 설치 후에도 여전히 작동하지 않는다면 다음 문제일 수 있습니다.

코드가 editpuls 또는 notepad++와 같은 텍스트 편집기를 사용하여 편집된 경우 기본 인코딩 형식은 utf입니다. -8(BOM 포함)

UTF-8 BOM은 UTF-8 서명이라고도 합니다. 실제로 UTF-8 BOM은 UFT-8에 영향을 주지 않습니다. UTF-16 및 UTF-32

BOM, BOM을 지원하기 위해 추가되었습니다. 서명의 의미는 편집자의 식별을 용이하게 하기 위해 현재 파일이 어떤 인코딩을 사용하는지 편집자에게 알려주는 것입니다. 그러나 BOM이 편집기에 표시되지 않더라도(

) 추가 빈 줄처럼 출력이 생성됩니다.
저는 일반적으로 UTF-8 BOM-free 형식을 사용합니다

그래서 코드의 인코딩 형식을BOM-free 형식으로 변경해야 합니다.

bug3

위의 두 단계를 거쳐도 여전히 작동하지 않는다면 비장의 카드를 사용해야 합니다.

캐시를 지우려면 ob_clean()을 사용하세요.

ob_clean 함수는 출력 버퍼의 내용을 삭제하는 데 사용됩니다. 생성된 이미지 파일이 많은 경우 해당 파일에 올바르게 액세스하려면 버퍼를 자주 지워야 합니다.

public function create() { ob_clean(); $a = new verify(); session::set('captcha', strtolower($a->create(4, 15))); view::assign("captcha", $a); view::display("captcha"); exit(0); }
로그인 후 복사

이제 모두가 정상적으로 돌아온 걸 볼 수 있습니다


참고: 더 높은 PHP 버전을 사용하는 경우 정의되지 않은 변수를 사용할 수 없습니다. 그렇지 않으면notice 오류가 보고됩니다. $new_number 및 $_SESSION['check_checks']는 사용하기 전에 isset으로 판단해야 합니다. 이전 코드의 경우 알림 오류를 차단하려면 시작 부분에 error_reporting(E_ALL & ~E_NOTICE); 을 추가하십시오(권장되지 않음). 따라서 isset()을 사용하여 정의되었는지 확인하세요. 그렇지 않으면 인증번호가 표시되지 않을 수 있습니다.

위 내용은 PHP 인증코드가 사진으로 나오지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!