anlamadığım şey kodu resme yazdırmadığın için almak istediğin güvenlik önmeli suistimal edilebilinir.

<?php

create_image();
exit();

function create_image()
{
   
    $md5 = md5(rand(0,999)); 
    $pass = substr($md5, 10, 5);

    $width = 100;
    $height = 20; 
 
    $image = ImageCreate($width, $height); 
  
    $white = ImageColorAllocate($image, 255, 255, 255);
    $black = ImageColorAllocate($image, 0, 0, 0);
    $grey = ImageColorAllocate($image, 204, 204, 204);
 
    ImageFill($image, 0, 0, $black);
   
    ImageString($image, 3, 30, 3, $pass, $white);
    
    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); 
   
    header("Content-Type: image/jpeg");
   
    ImageJpeg($image);
    
    ImageDestroy($image);
}
?>
ayrıca session kullanıyorsa kodun başlangıcına session_start(); eklemeyi unutma.

karışık geldi anlamadım diyorsan şunu kullan.
___________________________
index.php
<?php

session_start();  

$resim_kodu=""; 

function rasgele() { 

      $gecici_deger = mt_rand(1,3); 

  

      switch ($gecici_deger) {

          case 1:


          $gecici_deger = mt_rand(97, 122);
         

          break;

          case 2:


          $gecici_deger = mt_rand(48, 57);
         

          break;

          case 3:


          $gecici_deger = mt_rand(65, 90);


          break;

       }


       return chr($gecici_deger);

}


for ($i = 1; $i <= 4; $i++) {

             $resim_kodu.= rasgele();

}

 

$_SESSION['guvenlik_kodu'] = $resim_kodu;


 

echo '<html><head><title>Güvenlik kodu uygulaması</title></head><body><br>

<form action="kontrol.php" method="POST" name="guvenlik" target="_self">

<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">

  <tr><td>

      <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Lütfen resimde

gördüğünüz kodu, resmin yanındaki kutucuğa giriniz. Eğer kodu tam okuyamıyorsanız F5

tuşuna basarak yeni kodu görebilirsiniz.</font></p>

      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><img src="resim.php?';


echo session_id();  


echo '"></font></p>     

        <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Kodu girin: </font>

          <input name="kod" type="text" id="kod" size="30">

              <input type="submit" name="Submit" value="OK">

        </p>

      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

            <b>Not:</b>Güvenlik kodu büyük küçük harf duyarlıdır!

      </p>

    </td></tr>

</table></form></body></html>';

?"gt;

resim.php
<?php

session_start();

$guvenlik_kodu= $_SESSION['guvenlik_kodu'];


$resim=imagecreate(100,40);


$resim_siyah = imagecolorallocate($resim,0,0,0);

$resim_beyaz = imagecolorallocate($resim,255,255,255);


imagefill($resim,0,0,$resim_siyah);



imagechar($resim,4,20,13,$guvenlik_kodu[0],$resim_beyaz);

imagechar($resim,5,40,13,$guvenlik_kodu[1],$resim_beyaz);

imagechar($resim,3,60,13,$guvenlik_kodu[2],$resim_beyaz);

imagechar($resim,4,80,13,$guvenlik_kodu[3],$resim_beyaz);

header('Content-type: image/png');

imagepng($resim);

?>
kontrol.php
<?php


session_start();

$girilen_kod = $_POST['kod'];


$guvenlik_kodu=$_SESSION['guvenlik_kodu'];



if ($girilen_kod == $guvenlik_kodu) {

       echo 'çok beceriklisiniz. doğru kodu girdiniz.';

}

else {

       echo 'güvenlik kodu hatalı';

}


session_unset();

session_destroy();

?>

GD kütüphanesiin unutma