Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Генератор цифр...
 
 автор: alex007   (01.02.2007 в 16:20)   письмо автору
 
 

...При регистрации новый пользователь должен ввести 4 цифры на картинке сгенерированные автоматически. Короче, вот код генерации случайных цифр которые потом "рисуются".

 $i1=rand(1,9);
  $i2=rand(1,9);
  $i3=rand(1,9);
  $i4=rand(1,9);
  $angle=0;
  require('win2uni.php');
  define('WIDTH', 80);
  define('HEIGHT', 30);
  define('FONT_NAME', 'arial.ttf');
  define('FONT_SIZE', 20);
  $image = imagecreatetruecolor(WIDTH,HEIGHT)
  or die('Cannot create image');
  for ($i=3;$i<=90;$i=$i+3){
  ImageLine($image,0,$i,90,$i,0xF2FFFF);
  ImageLine($image,$i,0,$i,90,0xF2FFFF);
}
  $text=win2uni("$i1$i2$i3$i4");
  $coord = imagettfbbox(FONT_SIZE, 0, FONT_NAME, $text);
  $width = $coord[2] - $coord[0];
  $height = $coord[1] - $coord[7];
  $X = ((WIDTH - $width) / 2);
  $Y = (HEIGHT + $height) / 2;
  imagettftext($image,FONT_SIZE,$angle,$X,$Y,0xF2FFFF,FONT_NAME,$text);
  header('Content-type: image/png');
  imagepng($image);
  imagedestroy($image);

Проблема в том что при добавлении этого кода на страницу остальной текст вообще не отображается... Если убрать "header('Content-type: image/png');" то все наоборот, рисунок не отображается, т.е. вместо него отображается его машиный код.
Что я делаю не так?

И еще... Вот код win2uni.php (хотя в данном случае тэг require можно убрать)):

<?php 
  
function win2uni($s)
  {
    
$s convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859-5
    // преобразование iso8859-5 -> unicode:
    
for ($result=''$i=0$i<strlen($s); $i++) {
      
$charcode ord($s[$i]);
      
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
    }
    return 
$result;
  }
?>

   
 
 автор: Саня   (01.02.2007 в 16:34)   письмо автору
 
   для: alex007   (01.02.2007 в 16:20)
 

Вы мешаете и html, и рисунок на одной странице. Так нельзя. Вынесите код генерации картинки в другой скрипт и в форме напишите <img src="captcha.php">

   
 
 автор: Alex007   (02.02.2007 в 10:17)   письмо автору
 
   для: Саня   (01.02.2007 в 16:34)
 

Большое спасибо, все получилось...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования