Home  >  Article  >  Backend Development  >  Solution to "The image cannot be displayed because of its own errors" when PHP generates verification code_PHP Tutorial

Solution to "The image cannot be displayed because of its own errors" when PHP generates verification code_PHP Tutorial

WBOY
WBOYOriginal
2016-07-21 14:59:25737browse

Today I used code to implement the PHP verification code generation function. I found that Firefox kept prompting "The image...cannot be displayed because of its own errors." The author also reminded that "If the browser displays "Image

So I googled deeply and most of the solutions were to delete all the spaces and press Enter before the code "

Confirmation code generation file checkNum_session.php

Copy code The code is as follows:

Header( "Content-type: image/png");
/*
* Initialization
*/
$border = 1; //Whether you want a border 1 Yes: 0 No
$how = 4; //Verification code digits
$w = $how*15; //Picture width
$h = 20; //Picture height
$fontsize = 6; //Font size
$alpha = "abcdefghijkmnopqrstuvwxyz"; //Verification code content 1: letters
$number = "023456789"; //Verification code content 2: numbers
$randcode = ""; //Verification code string initialization
srand((double)microtime()*1000000); //Initialize random number seed
$im = ImageCreate($w, $h); //Create verification image
/*
* Draw Basic framework
*/
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //Set the background color
ImageFill($im, 0, 0, $bgcolor); //Fill the background Color
if($border)
{
$black = ImageColorAllocate($im, 0, 0, 0); //Set border color
ImageRectangle($im, 0, 0, $w -1, $h-1, $black);//Draw the border
}
/*
* Generate random characters bit by bit
*/
for($i=0; $ i<$how; $i++)
{
$alpha_or_number = mt_rand(0, 1); //Letters or numbers
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand(0, strlen($str)-1); //Which character is taken
$code = substr($str, $which, 1); //Character is taken
$j = !$i ? 4: $j+15; //Draw character position
$color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //Character color then
ImageChar($ im, $fontsize, $j, 3, $code, $color3); //Draw characters
$randcode .= $code; //Add the verification code string bit by bit
}
// Write the verification code string into session
session_start();
$_SESSION['authnum_session'] = $randcode;
/*
* Add interference
*/
for($ i=0; $i<1; $i++)//Draw background interference lines
{
$color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); / /Interference line color
ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); // Interference line
}
for($i=0; $i<$how*40; $i++)//Draw background interference point
{
$color2 = ImageColorAllocate($im, mt_rand( 0,255), mt_rand(0,255), mt_rand(0,255)); //Interference point color
ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //Interference Click
}
//Key code to prevent the problem of 'the image cannot be displayed because of its own errors'
ob_clean();
/*End of drawing*/
Imagegif($im );
ImageDestroy($im);
/*End of drawing*/

Confirmation code calls file sessionValidate.php
Copy code The code is as follows:

session_start();
//On the page, you must first open the session,
//error_reporting (2047);
session_destroy();
//Remove the session so that you can get a new session value every time;
//Using seesion works well and is very convenient
?>


session image verification example


This example is Session verification example

Verification code:



//Print the previous session ;
echo "Previous session:".$_SESSION["authnum_session"]."
";
$validate="";
if( isset($_POST["validate"])){
$validate=$_POST["validate"];
echo "What you just entered is: ".$_POST["validate"]."< br>Status: ";
if($validate!=$_SESSION["authnum_session"]){
//Determine whether the session value is consistent with the verification code entered by the user;
echo "Incorrect input";
}else{
echo "Verified";
}
}
/*
//Print all sessions;
PrintArr($_SESSION);
function PrintArr($aArray){
echo '';<br>print_r($aArray) ;<br>echo '';
}
*/
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/328138.htmlTechArticleToday I used code to implement the PHP verification code generation function, and found that firefox kept prompting "Image... ..It cannot be displayed because of its own errors." The author also reminded that "If you browse...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn