Solution to the problem that php cannot display the verification code image: 1. Remove the semicolon in ";extension=php_gd2.dll"; 2. Change the encoding format of the code to a BOM-free format; 3. Use "ob_clean ()" function clears the cache.
Recommended: "PHP Video Tutorial"
;extension=php_gd2.dll
sudo apt-get install php5-gd
UTF-8 BOM is also called UTF-8 signature. In fact, UTF-8 BOM has no effect on UFT-8. It is added to support UTF-16 and UTF-32
BOM, BOM signature means to tell the editor what encoding the current file uses to facilitate the editor's identification, but although the BOM is in the editor
## It will not be displayed, but output will be generated, just like an extra blank line.Generally I use UTF-8 BOM-free format
So you need to change the encoding format of the code to
bug3
Use ob_clean() and clear the cache.
ob_clean This function is used to discard the contents of the output buffer. If you have many generated image files, then if you want to access them correctly, you must Clear the buffer frequently. 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);
}
Now, everyone can see that it is back to normal
notice error will be reported. $new_number and $_SESSION['check_checks'] must be judged with isset before use or you use old code If so, add error_reporting(E_ALL) at the beginning & ~E_NOTICE); shields notice errors (not recommended), so use isset() to make sure it is defined. Otherwise, the verification code may not be displayed.
The above is the detailed content of How to solve the problem that php cannot display the verification code image. For more information, please follow other related articles on the PHP Chinese website!