Просмотр файла captcha.php

Размер файла: 1.42Kb
  1. <?php
  2. if (!isset($_SESSION)) session_start();
  3. $random_string = mt_rand(1000,9999);
  4. $_SESSION['random_string'] = $random_string;
  5. $font = imageloadfont('anonymous.gdf'); // подставьте сюда имя шрифта который вы будете использовать
  6. if (!$font) $random_string = "FONT NOT FOUND";
  7. $fontWidth = imagefontwidth($font);
  8. $fontHeight = imagefontheight($font);
  9. $width = strlen($random_string) * $fontWidth;
  10. $height = $fontHeight;
  11. $img = @ImageCreate ($width, $height) or die ("Cannot Initialize new GD image stream");
  12. $background_color = @imagecolorallocate($img, 255, 255, 255);
  13. $text_color = @imagecolorallocate($img, 0, 0, 0);
  14. @imagestring($img, $font, 0, 0, $random_string, $text_color);
  15. $img2 = @ImageCreate ($width, $height) or die ("Cannot Initialize new GD image stream");
  16. $x=1;
  17. $i=0;
  18. // собственно сам алгоритм:
  19. while ($x<$width) { // идем по X-су и копируем кусочки
  20. $xx = mt_rand(1,2); // c этим промежутком можно поиграть
  21. $yy = mt_rand(5,10); // c этим промежутком можно поиграть
  22. $i=$i+($xx/10); // шаг для Sin-уса
  23. $y = ceil(sin($i)*$yy);// смещение по Y-ку
  24. @imagecopy ($img2, $img, $x, $y, $x, 0, 1, $height); // копирование кусочка
  25. $x++;
  26. }
  27. // отправляем заголовки для предотвращения кэширования
  28. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  29. header("Cache-Control: no-store, no-cache, must-revalidate");
  30. header ("Content-type: image/png");
  31. ImagePng ($img2);
  32. @imagedestroy($img2);
  33. @imagedestroy($img);
  34. ?>