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]   

> Без описания
saber135791
Отправлено: 10 Октября, 2011 - 18:27:26
Post Id


Гость


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


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




Здравствуйте, решил попробовать использовать капчу (не свою а чужую), взял от сюда - http://akak[dot]ru/recipes/12240-kak[dot][dot][dot]oyu-kapchu-v-php код капчи, сделал как в инструкции, а капча не отображается, пользуюсь денвером, подозреваю, что проблема в нем, но не знаю где, подскажите что можно с этим сделать?
 
 Top
DeepVarvar Супермодератор
Отправлено: 10 Октября, 2011 - 18:49:54
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <img src="captha.php?<?=md5(microtime())?>"/>
 
 Top
LIME
Отправлено: 10 Октября, 2011 - 18:58:52
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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





суслики по порядку:
RomAndry, EuGen, Мелкий, Illy, DeepVarvar, OrmaJever.
 
 Top
DeepVarvar Супермодератор
Отправлено: 10 Октября, 2011 - 19:03:05
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Радость Радость Радость Радость Радость Радость Радость Радость Радость
 
 Top
saber135791
Отправлено: 10 Октября, 2011 - 19:44:55
Post Id


Гость


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


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




DeepVarvar Не помогло!
 
 Top
DeepVarvar Супермодератор
Отправлено: 10 Октября, 2011 - 20:40:13
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Код капчи сюда в таком виде как он есть в файле.
 
 Top
saber135791
Отправлено: 10 Октября, 2011 - 22:02:55
Post Id


Гость


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. for ($k = 1; $k<=5 ; $k++)
  3. {
  4. $text.= rand(1, 9);
  5. }
  6.  
  7. $img = imagecreatetruecolor(110, 30); //Создаём изображение шириной 110 px, высотой 30px.
  8. $white = imagecolorallocate($img, 255, 255, 255); // Присваиваем переменной $white белый цвет
  9. $red = imagecolorallocate($img, 255, 0, 0);// Присваиваем переменной $red красный цвет
  10. $black = imagecolorallocate($img, 0, 0, 0);// Присваиваем переменной $black чёрный цвет
  11. imagesetthickness($img, 2); // Устанавливаем ширину линий
  12. imagefill($img, 0, 0, $white); //Заливаем изображение белым
  13.  
  14. imageline($img, 20, 0, 80, 13, $black); //Линия чёрного цвета
  15. imageellipse ($img, 0, 0, 70, 40, $black); //Эллипс чёрного цвета
  16.  
  17. for ($i = 1; $i<=5; $i++)
  18. {
  19. $r = $i*15; //Нужно, чтобы соблюдалась ширина между цифрами и они не лепились друг на друга.
  20. if ($i % 2 == 0) // Условие, для выбора высоты цифры.
  21. {
  22. $sok=1.3;// Если $i делиться на 2 без остатка, то высота цифры увеличивается в 1.3 раза.
  23. }
  24. else
  25. {
  26. $sok= 1.5; // Иначе высота увеличивается в 1.5 раза.
  27. }
  28. if ($text{$i-1} == "1")//Если цифра равна 1, то рисуем её
  29. {
  30. imageline($img, 7+$r, 5*$sok, 7+$r, 15*$sok, $black);
  31. imageline($img, 7+$r, 5*$sok, 5+$r, 9*$sok, $black);
  32. }
  33. if ($text{$i-1} == "2") {//Цифра 2
  34. imageline($img, 5+$r, 6*$sok, 7+$r, 3*$sok, $green);
  35. imageline($img, 7+$r, 3*$sok, 10+$r, 6*$sok, $green);
  36. imageline($img, 10+$r, 6*$sok, 6+$r, 14*$sok, $green);
  37. imageline($img, 6+$r, 14*$sok, 10+$r, 14*$sok, $green);
  38. }
  39. if ($text{$i-1} == "3") {//Цифра 3
  40. imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $green);
  41. imageline($img, 10+$r, 5*$sok, 10+$r, 10*$sok, $green);
  42. imageline($img, 10+$r, 10*$sok, 5+$r, 10*$sok, $green);
  43. imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $green);
  44. imageline($img, 10+$r, 15*$sok, 5+$r, 15*$sok, $green);
  45. }
  46. if ($text{$i-1} == "4") {//Цифра 4
  47. imageline($img, 5+$r, 4*$sok, 5+$r, 10*$sok, $green);
  48. imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $green);
  49. imageline($img, 10+$r, 10*$sok, 10+$r, 4*$sok, $green);
  50. imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $green);
  51. }
  52. if ($text{$i-1} == "5") {//Цифра 5
  53. imageline($img, 5+$r, 4*$sok, 11+$r, 4*$sok, $green);
  54. imageline($img, 5+$r, 4*$sok, 5+$r, 10*$sok, $green);
  55. imageline($img, 5+$r, 10*$sok, 11+$r, 10*$sok, $green);
  56. imageline($img, 11+$r, 11*$sok, 11+$r, 15*$sok, $green);
  57. imageline($img, 11+$r, 15*$sok, 5+$r, 15*$sok, $green);
  58. }
  59. if ($text{$i-1} == "6") {//Цифра 6
  60. imageline($img, 10+$r, 4*$sok, 5+$r, 4*$sok, $green);
  61. imageline($img, 5+$r, 4*$sok, 5+$r, 15*$sok, $green);
  62. imageline($img, 5+$r, 15*$sok, 10+$r, 15*$sok, $green);
  63. imageline($img, 10+$r, 15*$sok, 10+$r, 10*$sok, $green);
  64. imageline($img, 10+$r, 10*$sok, 5+$r, 10*$sok, $green);
  65. }
  66. if ($text{$i-1} == "7") {//Цифра 7
  67. imageline($img, 5+$r, 5*$sok, 11+$r, 5*$sok, $green);
  68. imageline($img, 11+$r, 5*$sok, 7+$r, 15*$sok, $green);
  69. }
  70. if ($text{$i-1} == "8") {//Цифра 8
  71. imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $green);
  72. imageline($img, 5+$r, 5*$sok, 5+$r, 10*$sok, $green);
  73. imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $green);
  74. imageline($img, 10+$r,10*$sok, 10+$r, 5*$sok, $green);
  75. imageline($img, 5+$r, 10*$sok, 5+$r, 15*$sok, $green);
  76. imageline($img, 10+$r,10*$sok, 10+$r, 15*$sok, $green);
  77. imageline($img, 5+$r, 15*$sok, 10+$r, 15*$sok, $green);
  78. }
  79. if ($text{$i-1} == "9") {//Цифра 9
  80. imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $green);
  81. imageline($img, 5+$r, 5*$sok, 5+$r, 10*$sok, $green);
  82. imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $green);
  83. imageline($img, 10+$r, 10*$sok, 10+$r, 5*$sok, $green);
  84. imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $green);
  85. imageline($img, 10+$r, 15*$sok, 5+$r, 15*$sok, $green);
  86. }
  87. }
  88. header("Cache-control: private");
  89. header("Content-type: image/png");
  90. imagepng($img);//Выводим изображение
  91. imagedestroy($img);//Освобождаем память
  92. ?>
 
 Top
DeepVarvar Супермодератор
Отправлено: 10 Октября, 2011 - 22:12:08
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




А напрямую по адресу открывается?
 
 Top
White
Отправлено: 10 Октября, 2011 - 22:25:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


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




Вот простенькая капча на gd2, писал сам думаю сложностей с ней быть не должно. В архиве 2 шрифта и сам скрипт
Спойлер (Отобразить)

Скачать файл: captcha.tar.gz
Скачан раз: 95


-----
if(time()>1356048000) die();
 
 Top
saber135791
Отправлено: 11 Октября, 2011 - 14:34:19
Post Id


Гость


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


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




DeepVarvar пишет:
А напрямую по адресу открывается?

Да, нормально отображается!
 
 Top
saber135791
Отправлено: 11 Октября, 2011 - 20:20:23
Post Id


Гость


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


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




Получилось, капча отображается, но появилась другая проблема: не получается вывести цифры из капчи на страницу регистрации в виде текста, пробовал с помощью с сессии, не получилось (пробовал сессии присвоить переменную $text, не получилось, пробовал вместо переменной $text написать сессию, тоже не получилось), подскажите как можно вывести?
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. for ($k = 1; $k<=5 ; $k++)
  3. {
  4. $text.= rand(1, 9);
  5. }
  6.  
  7. $img = imagecreatetruecolor(110, 30); //Создаём изображение шириной 110 px, высотой 30px.
  8. $gray = imagecolorallocate($img, 51, 51, 51); // Присваиваем переменной $gray белый цвет
  9. $red = imagecolorallocate($img, 255, 0, 0);// Присваиваем переменной $red красный цвет
  10. $black = imagecolorallocate($img, 0, 0, 0);// Присваиваем переменной $black чёрный цвет
  11. $beige = imagecolorallocate($img, 204,204, 204);
  12. imagesetthickness($img, 2); // Устанавливаем ширину линий
  13. imagefill($img, 0, 0, $gray); //Заливаем изображение белым
  14.  
  15. imageline($img, 20, 0, 80, 13, $black); //Линия чёрного цвета
  16. imageellipse ($img, 0, 0, 70, 40, $black); //Эллипс чёрного цвета
  17.  
  18. for ($i = 1; $i<=5; $i++)
  19. {
  20. $r = $i*15; //Нужно, чтобы соблюдалась ширина между цифрами и они не лепились друг на друга.
  21. if ($i % 2 == 0) // Условие, для выбора высоты цифры.
  22. {
  23. $sok=1.3;// Если $i делиться на 2 без остатка, то высота цифры увеличивается в 1.3 раза.
  24. }
  25. else
  26. {
  27. $sok= 1.5; // Иначе высота увеличивается в 1.5 раза.
  28. }
  29. if ($text{$i-1} == "1")//Если цифра равна 1, то рисуем её
  30. {
  31. imageline($img, 7+$r, 5*$sok, 7+$r, 15*$sok, $beige);
  32. imageline($img, 7+$r, 5*$sok, 5+$r, 9*$sok, $beige);
  33. }
  34. if ($text{$i-1} == "2") {//Цифра 2
  35. imageline($img, 5+$r, 6*$sok, 7+$r, 3*$sok, $beige);
  36. imageline($img, 7+$r, 3*$sok, 10+$r, 6*$sok, $beige);
  37. imageline($img, 10+$r, 6*$sok, 6+$r, 14*$sok, $beige);
  38. imageline($img, 6+$r, 14*$sok, 10+$r, 14*$sok, $beige);
  39. }
  40. if ($text{$i-1} == "3") {//Цифра 3
  41. imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $beige);
  42. imageline($img, 10+$r, 5*$sok, 10+$r, 10*$sok, $beige);
  43. imageline($img, 10+$r, 10*$sok, 5+$r, 10*$sok, $beige);
  44. imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $beige);
  45. imageline($img, 10+$r, 15*$sok, 5+$r, 15*$sok, $beige);
  46. }
  47. if ($text{$i-1} == "4") {//Цифра 4
  48. imageline($img, 5+$r, 4*$sok, 5+$r, 10*$sok, $beige);
  49. imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $beige);
  50. imageline($img, 10+$r, 10*$sok, 10+$r, 4*$sok, $beige);
  51. imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $beige);
  52. }
  53. if ($text{$i-1} == "5") {//Цифра 5
  54. imageline($img, 5+$r, 4*$sok, 11+$r, 4*$sok, $beige);
  55. imageline($img, 5+$r, 4*$sok, 5+$r, 10*$sok, $beige);
  56. imageline($img, 5+$r, 10*$sok, 11+$r, 10*$sok, $beige);
  57. imageline($img, 11+$r, 11*$sok, 11+$r, 15*$sok, $beige);
  58. imageline($img, 11+$r, 15*$sok, 5+$r, 15*$sok, $beige);
  59. }
  60. if ($text{$i-1} == "6") {//Цифра 6
  61. imageline($img, 10+$r, 4*$sok, 5+$r, 4*$sok, $beige);
  62. imageline($img, 5+$r, 4*$sok, 5+$r, 15*$sok, $beige);
  63. imageline($img, 5+$r, 15*$sok, 10+$r, 15*$sok, $beige);
  64. imageline($img, 10+$r, 15*$sok, 10+$r, 10*$sok, $beige);
  65. imageline($img, 10+$r, 10*$sok, 5+$r, 10*$sok, $beige);
  66. }
  67. if ($text{$i-1} == "7") {//Цифра 7
  68. imageline($img, 5+$r, 5*$sok, 11+$r, 5*$sok, $beige);
  69. imageline($img, 11+$r, 5*$sok, 7+$r, 15*$sok, $beige);
  70. }
  71. if ($text{$i-1} == "8") {//Цифра 8
  72. imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $beige);
  73. imageline($img, 5+$r, 5*$sok, 5+$r, 10*$sok, $beige);
  74. imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $beige);
  75. imageline($img, 10+$r,10*$sok, 10+$r, 5*$sok, $beige);
  76. imageline($img, 5+$r, 10*$sok, 5+$r, 15*$sok, $beige);
  77. imageline($img, 10+$r,10*$sok, 10+$r, 15*$sok, $beige);
  78. imageline($img, 5+$r, 15*$sok, 10+$r, 15*$sok, $beige);
  79. }
  80. if ($text{$i-1} == "9") {//Цифра 9
  81. imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $beige);
  82. imageline($img, 5+$r, 5*$sok, 5+$r, 10*$sok, $beige);
  83. imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $beige);
  84. imageline($img, 10+$r, 10*$sok, 10+$r, 5*$sok, $beige);
  85. imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $beige);
  86. imageline($img, 10+$r, 15*$sok, 5+$r, 15*$sok, $beige);
  87. }
  88. }
  89. header("Cache-control: private");
  90. header("Content-type: image/png");
  91. imagepng($img);//Выводим изображение
  92. imagedestroy($img);//Освобождаем память
  93. ?>

(Отредактировано автором: 11 Октября, 2011 - 20:21:33)

 
 Top
illy
Отправлено: 11 Октября, 2011 - 21:38:31
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




записывай цифры в файл и выводи Однако


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
White
Отправлено: 11 Октября, 2011 - 22:50:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


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





illy не все в этой жизни решается файлами Радость

saber135791 я не зря вам пример рабочей капчи приводил, там все это есть, и довольно коротко написано. почитайте и вопросы сами отпадут.


-----
if(time()>1356048000) die();
 
 Top
saber135791
Отправлено: 12 Октября, 2011 - 10:23:19
Post Id


Гость


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


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




White пишет:
saber135791 я не зря вам пример рабочей капчи приводил, там все это есть, и довольно коротко написано. почитайте и вопросы сами отпадут.

На капче не отображаются буквы и цифры, сессия работает, но при первом входе на сайт не отображается!
 
 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