We need to enable gd expansion. You can use the following code to check whether gd expansion is enabled.
Then search the gd option on the browserCtrl+F
to verify whether you have installed this extension. If not, you need to install the extension yourself.
Default generates black background
Copy after login
Create a fill color and use imagefill(image, x ,y,color) method to attach.
Copy after login
Before using this method, you must set the header information first, otherwise the image will not be displayed normally
Timely release of resources will reduce the pressure on server requests.
Generate color information to facilitate processing later.
$fontcolor=imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));
Write the content information to the corresponding position of the image.
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
// 生成一些干扰的点,这里是200个 for($i=0;$i<200;$i++){ $pointcolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255)); imagesetpixel($image,rand(0,100),rand(0,30),$pointcolor); }
// 生成一些干扰线 这里是5个 for($i=0;$i<5;$i++){ // 设置为浅色的线,防止喧宾夺主 $linecolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255)); imageline($image,rand(0,99),rand(0,29),rand(0,99),rand(0,29),$linecolor); }
Copy after login
Note: The session must be opened at the beginning
The verification process is The verification code entered by the client is compared with the verification code existing in the session field. That is:
if(isset($_REQUEST['checkcode'])){ session_start(); if($_REQUEST['checkcode']==$_SESSION['checkcode']){ echo "Success!"; }else{ echo "Failed!"; } exit(); }
However, there is a disadvantage in simple verification, that is, the capitalization of letters is prone to errors. So we need to do a conversion to change all the values entered by the user into lowercase.
if(strtolower($_REQUEST['checkcode'])==$_SESSION['checkcode']){···}
Copy after login
Finally, let’s give a summary.
Using php to create verification codes requires the support of gd extension.
Use the imagecreatetruecolor method to generate the background color, and use imagefill to fill a color generated by imagecolorallocate.
Use imagestring to combine the verification code and background image
Use imagesetpixel to add interference points
Use imageline to add interference lines
Before using session, you must enable the session_start() method at the beginning
Use JavaScript to dynamically modify The src of the verification code is used to meet the user's need to "change another one".
The above is the detailed content of Detailed introduction to the principle of PHP verification code implementation. For more information, please follow other related articles on the PHP Chinese website!