Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод каптчи

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
jonston
Отправлено: 03 Сентября, 2014 - 21:40:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




Здравствуйте!Есть скрипт генерирующий каптчу.Есть шаблон в котором [[captcha]] таким образом получается код картинки.Этот скрипт можно редактировать, но путь к нему мы не знаем так что <img src="[[captcha]]"/> не прокатит.Что делать?

скрипт капчти
PHP:
скопировать код в буфер обмена
  1.  
  2. $width = 100;                           //Ширина изображения
  3. $height = 60;                           //Высота изображения
  4. $font_size = 16;                        //Размер шрифта
  5. $let_amount = 4;                        //Количество символов, которые нужно набрать
  6. $fon_let_amount = 30;           //Количество символов на фоне
  7. $font = "fonts/cour.ttf";       //Путь к шрифту
  8.  
  9. //набор символов
  10. $letters = array("a","b","c","d","e","f","g");         
  11. //цвета
  12. $colors = array("90","110","130","150","170","190","210");     
  13.  
  14. $src = imagecreatetruecolor($width,$height);    //создаем изображение                          
  15. $fon = imagecolorallocate($src,255,255,255);    //создаем фон
  16. imagefill($src,0,0,$fon);                                               //заливаем изображение фоном
  17.  
  18. for($i=0;$i < $fon_let_amount;$i++)                     //добавляем на фон буковки
  19. {
  20.         //случайный цвет
  21.         $color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);
  22.         //случайный символ
  23.         $letter = $letters[rand(0,sizeof($letters)-1)];
  24.         //случайный размер                                                             
  25.         $size = rand($font_size-2,$font_size+2);                                                                                       
  26.         imagettftext($src,$size,rand(0,45),
  27.                 rand($width*0.1,$width-$width*0.1),
  28.                 rand($height*0.2,$height),$color,$font,$letter);
  29. }
  30.  
  31. for($i=0;$i < $let_amount;$i++)         //то же самое для основных букв
  32. {
  33.    $color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],
  34.                 $colors[rand(0,sizeof($colors)-1)],
  35.                 $colors[rand(0,sizeof($colors)-1)],rand(20,40));
  36.    $letter = $letters[rand(0,sizeof($letters)-1)];
  37.    $size = rand($font_size*2-2,$font_size*2+2);
  38.    $x = ($i+1)*$font_size + rand(1,5);          //даем каждому символу случайное смещение
  39.    $y = (($height*2)/3) + rand(0,5);                                                   
  40.    $cod[] = $letter;                                            //запоминаем код
  41.    imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
  42. }
  43.  
  44. $cod = implode("",$cod);                                        //переводим код в строку
  45.  
  46. header ("Content-type: image/gif");             //выводим готовую картинку
  47. imagegif($src);
  48.  

(Отредактировано автором: 03 Сентября, 2014 - 21:41:51)



-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
esterio
Отправлено: 04 Сентября, 2014 - 12:00:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




jonston пишет:
но путь к нему мы не знаем так что <img src="[[captcha]]"/> не прокатит

почему это?
 
 Top
jonston
Отправлено: 04 Сентября, 2014 - 14:45:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




esterio пишет:
jonston пишет:
но путь к нему мы не знаем так что <img src="[[captcha]]"/> не прокатит

почему это?

Потому что в атрибуте src выводится бинарник картинки.


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
esterio
Отправлено: 04 Сентября, 2014 - 14:52:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




так сделайте отдельно скрипт типа captcha.php и делайте адтрибут src ссилкой на него
 
 Top
jonston
Отправлено: 04 Сентября, 2014 - 15:05:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




esterio пишет:
так сделайте отдельно скрипт типа captcha.php и делайте адтрибут src ссилкой на него

Так и сделал.Но теперь с сессиями проблема.В файле задает $_SESSION['captcha'] а в сниппете не видит.


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
Edwvee
Отправлено: 04 Сентября, 2014 - 15:33:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Всмысле не видит в сниппете? При генерации формы, или при отправке? Если при генерации, то зачем оно надо? Если при отправке, то может сессия не запущена была в файле или в сниппете.
 
 Top
jonston
Отправлено: 04 Сентября, 2014 - 15:39:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




Edwvee пишет:
Всмысле не видит в сниппете? При генерации формы, или при отправке? Если при генерации, то зачем оно надо? Если при отправке, то может сессия не запущена была в файле или в сниппете.


Да короче тупая cms переделывает сессии в свои.То есть если в отдельном файле установить $_SESSION['foo'], то при обращении к нему же но уже через сниппет значение будет пустое так, как обращается уже ко внутренним сессиям cms/Спасибо врядли вы мне поможете.Тут нужно копать в ядре.


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB