troubleshooting Question

PHP - Problems in headers

Avatar of Pedro Chagas
Pedro ChagasFlag for Portugal asked on
PHP
3 Comments1 Solution184 ViewsLast Modified:
Hi E's,
I have this code, but when I execute them I get this warnings:
<b>Warning</b>:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/puzzles/public_html/imagem_apoio/imagem_captcha.php:1) in <b>/home/puzzles/public_html/imagem_apoio/imagem_captcha.php</b> on line <b>2</b><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/puzzles/public_html/imagem_apoio/imagem_captcha.php:1) in <b>/home/puzzles/public_html/imagem_apoio/imagem_captcha.php</b> on line <b>43</b><br />
Line 43: header("Content-Type: image/jpeg");
 <?php
session_start();

//Send a generated image to the browser
create_image();
exit();

function create_image()
{
    //Let's generate a totally random string using md5
    $md5_hash = md5(rand(0,999)); 
    //We don't need a 32 character long string so we trim it down to 5 
    $security_code = substr($md5_hash, 15, 5); 

    //Set the session to store the security code
    $_SESSION["security_code"] = $security_code;

    //Set the image width and height
    $width = 50;
    $height = 14; 

    //Create the image resource 
    $image = ImageCreate($width, $height);  

    //We are making three colors, white, black and gray
    $black = ImageColorAllocate($image, 9, 0, 0);
    $white = ImageColorAllocate($image, 255, 255, 255);
    $grey = ImageColorAllocate($image, 187, 179, 230);

    //Make the background black 
    ImageFill($image, 0, 0, $black); 

    //Add randomly generated string in white to the image
    //controla a posição do conjunto das letras 1 mede tamanho 2 mede posição vertical 3 posicao horizontal
    ImageString($image, 3, 1, 3, $security_code, $white); 

    //Throw in some lines to make it a little bit harder for any bots to break 
    //ImageRectangle($image,0,0,$width-1,$height-1,$grey); 
    //imageline($image, 0, $height/2, $width, $height/2, $grey); 
    //imageline($image, $width/2, 0, $width/2, $height, $grey); 
 
    //Tell the browser what kind of file is come in 
    header("Content-Type: image/jpeg"); 

    //Output the newly created image in jpeg format 
    ImageJpeg($image);
   
    //Free up resources
    ImageDestroy($image);
}
?> 
What can be wrong?

The best regards, JC
Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 3 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros