topical media & game development

talk show tell print

professional-sql-01-public-files-img-captcha.php / php



  <?php
  include '../../lib/functions.php';
  
  // must start or continue session and save CAPTCHA string in _SESSION for it
  // to be available to other requests
  if (!isset(_SESSION))
  {
      session_start();
      header('Cache-control: private');
  }
  
  // create a 65x20 pixel image
  width = 65;
  height = 20;
  image = imagecreate(65, 20);
  
  // fill the image background color
  bg_color = imagecolorallocate(image, 0x33, 0x66, 0xFF);
  imagefilledrectangle(image, 0, 0, width, height, bg_color);
  
  // fetch random text
  text = random_text(5);
  
  // determine x and y coordinates for centering text
  font = 5;
  x = imagesx(image) / 2 - strlen(text) * imagefontwidth(font) / 2;
  y = imagesy(image) / 2 - imagefontheight(font) / 2;
  
  // write text on image
  fg_color = imagecolorallocate(image, 0xFF, 0xFF, 0xFF);
  imagestring(image, font, x, y, text, fg_color);
  
  // save the CAPTCHA string for later comparison
  _SESSION['captcha'] = text;
  
  // output the image
  header('Content-type: image/png');
  imagepng(image);
  
  imagedestroy(image);
  ?>
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.