Home >Backend Development >PHP Problem >PHP verification code cannot be displayed
php verification code is not displayed?
Question
Today I created a new virtual host locally and deployed a small php website that I wrote before, because I used wamp integrated environment, so this situation does not occur. Now I suddenly find that the verification code cannot be generated.
So I started my journey to find bugs. I searched for many solutions on the Internet and finally solved it. Now I share it as follows:
bug1
When the above situation occurs, the most basic mistake is that you may have forgotten to install the gd module in php.
In the window environment, you only need to find it in the php.ini file
;extension=php_gd2.dll
Just remove the semicolon in front of it. After restarting apache, you can find this in phpinfo()
If you are under the ubuntu environment, you need to install the gd module. The command is
sudo apt-get install php5-gd
After installation, you can also see the above module.
bug2
If you go through the above installation and find that it still doesn’t work, then it may be the following problem
Your code It is probably edited using a text editor like editpuls or notepad, so their default encoding format is UTF-8 with BOM.
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. However, although the BOM is not displayed in the editor
, it will produce output, 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 BOM-free format.
bug3
If you go through the above two steps and find that it still doesn’t work, then you have to use your trump card.
Use ob_clean() to clear the cache.
The function of ob_clean is to discard the contents of the output buffer. If you have many generated image files, you must clear the buffer frequently if you want to access them correctly.
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, you can see that it is back to normal
Note: If you use a higher php version, you cannot use undefined variables, otherwise A notice error will be reported. $new_number and $_SESSION['check_checks'] must be judged by isset before use. Or if you use old code, add error_reporting(E_ALL & ~E_NOTICE) at the beginning; to block the notice error (not recommended) ), so use isset() to make sure it is defined. Otherwise, the verification code may not be displayed.
Recommended tutorial: PHP tutorial
The above is the detailed content of PHP verification code cannot be displayed. For more information, please follow other related articles on the PHP Chinese website!