>  기사  >  백엔드 개발  >  PHP 인증 코드 이미지가 표시되지 않습니다

PHP 인증 코드 이미지가 표시되지 않습니다

王林
王林원래의
2019-09-16 17:55:017765검색

PHP 인증 코드 이미지가 표시되지 않습니다

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

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

오류 1:

위의 상황이 발생하면 가장 기본적인 실수입니다. 당신은 내가 PHP에 gd 모듈을 설치하는 것을 잊었을 가능성이 있다는 것입니다. Window 환경에서는 php.ini 파일에서

;extension=php_gd2.dll

만 찾아서 앞의 세미콜론만 제거하면 됩니다. Apache를 재시작한 후 phpinfo()에서 찾을 수 있습니다.

PHP 인증 코드 이미지가 표시되지 않습니다

Ubuntu 환경이라면 , gd 모듈을 설치해야하며 명령은

sudo apt-get install php5-gd

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

오류 2:

위 설치를 완료한 후에도 여전히 작동하지 않는 경우 다음 문제일 수 있습니다.

귀하의 코드는 editpuls 또는 notepad++와 같은 텍스트 편집기를 사용하여 편집되었을 가능성이 높으며, 기본 인코딩 형식은 BOM이 포함된 utf-8입니다.

UTF-8 BOM은 UTF-8 서명이라고도 합니다. 실제로 UTF-8 BOM은 UTF-16 및 UTF-32를 지원하기 위해 추가되었습니다. 편집기 현재 파일에 어떤 인코딩이 사용되는지는 편집기에서 식별하기 편리합니다. 그러나 BOM이 편집기에 표시되지 않더라도 마치 추가 빈 줄처럼 출력이 생성됩니다. 일반적으로 저는 UTF-8 BOM-free 형식을 사용하므로 코드의 인코딩 형식을 BOM-free 형식으로 변경해야 합니다.

실수 3:

위의 두 단계를 수행했지만 여전히 작동하지 않는 경우 비장의 카드를 사용해야 합니다.

캐시를 지우려면 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 버전을 사용하는 경우 정의되지 않은 변수를 사용할 수 없습니다. 그렇지 않으면 공지 오류가 보고됩니다. $new_number 및 $_SESSION['check_checks']를 사용하기 전에 isset으로 판단하거나 사용해야 합니다. 이전 코드에서는 알림 오류를 차단하기 위해 시작 부분에 error_reporting(E_ALL & ~E_NOTICE); 를 추가하므로(권장하지 않음) isset()을 사용하여 정의되었는지 확인하세요. 그렇지 않으면 인증번호가 표시되지 않을 수 있습니다.

추천 튜토리얼: PHP 비디오 튜토리얼

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.