오류:
오늘은 로컬에서 새 가상 호스트를 만들고 이전에 작성했던 작은 PHP 웹사이트를 배포했습니다. 이전에 사용했던 wamp 통합 환경 때문에 이런 상황은 발생하지 않았습니다. 그런데 갑자기 인증코드를 생성할 수 없는 것을 발견했습니다.
그래서 우리는 버그를 찾는 여정을 시작했습니다. 인터넷에서 많은 솔루션을 검색하고 마침내 해결했습니다. 이제 다음과 같이 공유합니다.
방법 1:
위의 상황이 발생하면 가장 기본적인 방법은 다음과 같습니다. 실수는 당신이 PHP에 gd 모듈을 설치하는 것을 잊었을 수도 있다는 것입니다. Window 환경에서는 php.ini 파일에서만 찾으면 됩니다:
;extension=php_gd2.dll
앞에 있는 세미콜론만 제거하면 됩니다. Apache를 다시 시작한 후 phpinfo()에서 이를 찾을 수 있습니다:
우분투 환경에서는 gd 모듈을 설치해야 합니다. 명령은 다음과 같습니다.
sudo apt-get install php5-gd
설치 후 위 모듈도 볼 수 있습니다.
방법 2:
위 설치 후에도 여전히 작동하지 않으면 다음 문제가 문제일 수 있습니다.
귀하의 코드는 editpuls 또는 notepad++와 같은 텍스트 편집기를 사용하여 편집되었을 가능성이 높으며, 기본 인코딩 형식은 BOM이 포함된 utf-8입니다. UTF-8 BOM은 UTF-8 서명이라고도 합니다. 실제로 UTF-8 BOM은 UFT-16 및 UTF-32를 지원하기 위해 추가되었습니다.
BOM 서명의 의미는 편집자의 식별을 용이하게 하기 위해 현재 파일이 어떤 인코딩을 사용하는지 편집자에게 알려주는 것입니다. 그러나 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 버전을 사용하는 경우 정의되지 않은 변수를 사용할 수 없습니다. 그렇지 않으면 공지 오류가 보고되며 $_SESSION['check_checks']는 사용하기 전에 isset으로 판단해야 합니다. 이전 코드를 사용하는 경우 알림 오류를 차단하려면 시작 부분에 error_reporting(E_ALL & ~E_NOTICE)을 추가하십시오(권장되지 않음). 따라서 isset()을 사용하여 정의되어 있는지 확인하세요. 그렇지 않으면 확인 코드에 표시되지 않을 수 있습니다. .
추천 비디오 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP 확인 이미지가 표시되지 않습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!