Link to home
Start Free TrialLog in
Avatar of Pedro Chagas
Pedro ChagasFlag for Portugal

asked on

PHP - Problems in headers

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 />

Open in new window

<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 />

Open in new window

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);
}
?> 

Open in new window

What can be wrong?

The best regards, JC
ASKER CERTIFIED SOLUTION
Avatar of Dave Baldwin
Dave Baldwin
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial