>  기사  >  백엔드 개발  >  PHP 인증 코드를 표시할 수 없습니다

PHP 인증 코드를 표시할 수 없습니다

藏色散人
藏色散人원래의
2019-09-17 10:29:363568검색

PHP 인증 코드를 표시할 수 없습니다

php 인증코드가 표시되지 않나요?

문제

PHP 인증 코드를 표시할 수 없습니다

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

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

bug1

위의 상황이 발생할 때 가장 기본적인 실수는 다음과 같습니다. 당신은 아마도 PHP에 있을 것입니다. 나는 gd 모듈을 설치하는 것을 잊었습니다.

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

;extension=php_gd2.dll

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

PHP 인증 코드를 표시할 수 없습니다

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

sudo apt-get install php5-gd

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

bug2

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

코드는 아마도 editpuls 또는 notepad++와 같은 텍스트 편집기를 사용하여 편집한 다음 기본 인코딩 형식을 사용합니다. BOM이 있는 utf-8입니다.

UTF-8 BOM은 UTF-8 서명이라고도 합니다. 실제로 UTF-8 BOM은 UTF-16 및 UTF-32

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 인증 코드를 표시할 수 없습니다

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

추천 튜토리얼: PHP 튜토리얼

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

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