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 :: Не работает CAPTURE

 PHP.SU

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


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

> Описание: Картинка генерируется, но не выводится
Sereban
Отправлено: 27 Июля, 2011 - 14:18:40
Post Id


Новичок


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


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




Здравствуйте.
Вот уже второй день борюсь с Text_CAPTURE.
Вот скрипт:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.         require_once('text/captcha.php');
  3.  
  4.    $phrase = null;
  5.    if (isset($session->phrase) && strlen($session->phrase) > 0)
  6.                 $phrase = $session->phrase;
  7.  
  8.    $captcha = Text_CAPTCHA::factory('Image');
  9.  
  10.    $opts = array('font_size' => 20,
  11.                 'font_path' => 'C:/www/phpweb20/data',
  12.                 'font_file' => 'VeraBd.ttf');
  13.  
  14.    $captcha->init(120, 60, $phrase, $opts);
  15.  
  16.    //header('Content-type: image/png');
  17.    echo $captcha->getCAPTCHAAsPng();
  18. ?>


Если раскоментировать строчку header('Content-type: image/png'); то браузер пишет:
Цитата:
Изображение «http://phpweb20/c.php» не может быть показано, так как содержит ошибки.


С закоментированной строчкой браузер выдает такое:
Цитата:

Strict Standards: Non-static method Text_CAPTCHA::factory() should not be called statically in C:\www\phpweb20\htdocs\c.php on line 8

Strict Standards: Non-static method Text_Password::create() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\CAPTCHA\Driver\Image.php on line 169

Strict Standards: Non-static method Text_Password::_createPronounceable() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\Password.php on line 63

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\CAPTCHA\Driver\Image.php on line 217

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Image\Text.php on line 479

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Image\Text.php on line 675

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Image\Text.php on line 929

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\CAPTCHA\Driver\Image.php on line 305
ЙPNG  IHDRx<"ѕй€IDATxЬнЬKL]АOiKgЖЧґ(ИЕNД4Д†БM5uuAВKг“ K'¬ЏИ—ЇtmМ wЃLLp£∆ƒ‘Й ±1КПE-> ні– њ8сю„;”йt:”N—≥0Чы<уЌ9зЮ;”—uб¬ш'VИ$I—hіXkC5Uў≈ҐOюБґDJRЖ†ЋIТ$IbjJRПm*н6AЊ4SuНОь]BИэ2@ 2СҐ†ЋЭ»9RЦ°ЩЫ«Ь]e—Ц .f¬tKм–"÷Яƒі£„=и Ч4aЇІйЕіA„EАґ ±Ѕ*dRЧ]!bг&L©–тк і%ИЋnЙW4s¶*KыJЫ0б Е?пP5@лдьЪхЪ√+AlzђЕХн†u‘%х≈ъШ∆dЏДйђMмmPЁЫ7o^љzх Х+ЩL&ЫЌјЁїw°ƒХ'‘Ц,йI4@[u3НѕУNІ#СИ,Ћш/Ш ¶&jNeGjkЧEЧ•.ѕуX@÷.Чkrr“шB`яB°∞±±qэъuЫґА.„(ffffff"Сьf≠( °_l ,[®P((њ•љљ]»еr©T*ЫЌbМкииимм\__П«гkkk±XмтеЋ}}}∆57.÷Г.Л2±«/^ ОЛ/ ≤<;;[rдr9Dєµµ ЕHЯєєєT*Eю«¬ІOЯёњOк|>я≥gѕтщ<ёаююю2.µ©ўБЕqщ'N–≠^ѓ ƒ0oЁЇЕ5dH*ХЪЫЫ#Cь~KK дуyЪ2477cБсТL&#Ћ2R>zф((Кb’’1÷V–ЪQХvjXYYйммА•••;wоЦ∆∆∆sзќєЁnHІ”ф _Њ|АЌЌMЇ^м*–KKK±X ¶ІІ'''3ЩћЈoяђљX"Г÷ПИшЏµk>Яѕеr—MіSУ№edd$Яѕcykkkyy9 В ивв"ВёЎЎ†л[[[IЩЛ≈∆∆∆FGGБВ@«k≈zЛNІ”П«зу—ХИ >zфИзщюююёё^ВЫFјdxЅ`0СHР÷D"Б†Лё№№ьсгG `@УЄ°^%Й9rƒг©Ж[≥kў 4чnEQёЉyП?А={ц 8pА§иы$_ЮЯЯWерб√Ў у<±b∆ҐEQ§Aѓђђd≥YОгhОгрШУL&’†1pУЮ.ЧkgguњяoSеbжf™чоЦЦЦІOЯ“;…У'O∞055Е‘»yѓЇЇЇБ±wЌецнџ'∆nЎўўI&УбpШДОp8П«`qqqhhИ )4hа8ощузd-&Вў'f@ЂчоX,FS&цxмЎ1№ИЖЗЗo№Є!Ћ2…іиn—hM≤ШИҐшоЁ;тg"СЗ√ƒҐEQььщs&У…еrЂЂЂ:°h рл„ѓ“\¶hF @эъµP( :t~[.6a9г) Н Љ|щG"њя?:: ФSУQ$z2†„„„ЧЧЧ Еxљ^Яѕ„ЁЁэб√шшсгцц6ййvїЫЪЪhітVеs%≈–ЕBA≈{чо@4Х$ЙЙЄwuЬ#wВNx9О£/[QвхMMMннняњ'≠Д;r ЕBzuuХ÷Н6g44Fy}O≤P,≠~ ƒƒbОги№щб√З§g>Яяёё∆г ѕу≈@А(К4иЯ?bQґµµµґґ2з†4qgu№+з“ЌЛ–фё СHd||Љ≠≠ [£—(°LGaz8}yКҐ–@E∆©ГЅаьь<Ж ZHdиййyыц-”Џ№№ћЬПa—∆SЉzх ®А±Х»й”І…=А±±±љ{чТVЮз–x¶ј Пћ…АцzљL&УМ&$8hВЊ€>sEv[t1Жe[4»Щ3gИу@.Ч£[%IҐsaEQ–фДƒ¶


Эти кракозябры, насколько я понимаю, сгенерированое изображение, при обновлении меняются. Но почему браузер не может отобразить его как картинку?
И почему возникают эти ошибки, если вызов функций согласно документации к модулю.
 
 Top
Champion Супермодератор
Отправлено: 27 Июля, 2011 - 14:40:55
Post Id



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


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


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




Не может отобразить потому что сначала выводятся ошибки и коверкают содержимое изображения.
В тексте написано, что нестатические методы не должны вызываться как статические. Это написано обычным человеческим языком, вы могли это прочитать.
Надо class::method() вот такой вызов переправить на такой $obj->method(). Сначала только $obj = new class; Можно проще @ поставить перед вызовами, но не надо этого делать
 
 Top
Sereban
Отправлено: 27 Июля, 2011 - 15:14:56
Post Id


Новичок


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


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




я уже пробовал создавать экземпляр. да, первая ошибка убирается. но все остальные остаются, и картинка все равно не отображается.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.   require_once('text/captcha.php');
  3.  
  4.    $phrase = null;
  5.    if (isset($session->phrase) && strlen($session->phrase) > 0)
  6.      $phrase = $session->phrase;
  7.  
  8.    $c = new Text_CAPTCHA();
  9.    $captcha = $c->factory('Image');
  10.  
  11.    $opts = array('font_size' => 20,
  12.      'font_path' => 'C:/www/phpweb20/data',
  13.      'font_file' => 'VeraBd.ttf');
  14.  
  15.    $captcha->init(120, 60, $phrase, $opts);
  16.  
  17.    //header('Content-type: image/png');
  18.    echo $captcha->getCAPTCHAAsPng();
  19. ?>

Браузер выдает:
Цитата:

Strict Standards: Non-static method Text_Password::create() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\CAPTCHA\Driver\Image.php on line 169

Strict Standards: Non-static method Text_Password::_createPronounceable() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\Password.php on line 63

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\CAPTCHA\Driver\Image.php on line 217

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Image\Text.php on line 479

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Image\Text.php on line 675

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Image\Text.php on line 929

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Text\CAPTCHA\Driver\Image.php on line 305
┴PNG  IHDRx<"оИЪКIDATx°М°мoOг^йк ╓╪░┐T%6╕Я-╢ =Це║F=y@с▀^<≤НUMТЮм⌡'╫yR=l▄ZcbTЗ ╤╟╪з╡тJЫ&▌Сш┘eYvyсО┴Yvfg>Шщg·Y╕у\╩v ЧI}iUj7▀╘тr▐Jп╠X▄╕i5ZН-▒nсw╟щ/▓T▀жQt▐з╧f╛ke <}Кh▒Ш╜8S)Rt7ьq╓i╨ч└э▒Ж┴ё┘L;{к┘WWt{ф&▓8vЭaQW;ZJ0е│╒M}▓+е@╥hgTв"╝┴╒▌n}рОZд"Rt=;╚▒°╤ьB╖╓h4x╣⌠счE▄т4Х▌dШщ░·KT╫╝┼│√8И╚┼═в█▄е╜Юk■у7┬▒4╜╪ЬWин╫▀XHw-XzqCи╜╛²Ш1RГщ7┬е²'╢"vНдR╓╟ё⌠иДффEQ&⌠┴╒╗ааAЁы\СлJ█▒п"▄X√]^^фе╠╠╠`0≤иd▓иd╘Tрj╣###╗.ыB╣Z█F#ё3]╒├╬Qьяг▒E⌠иТЯЦгD"│┼ ц│8⌡м...╕сИR╘:²нИt╨щn▐гЦp8d\²╥бЙ╙'Fн\dЕr≥,...f2Ь█8 E"▐г÷>}ЗЯЦyr╔RI╖сИtЗк≈/~©Ъл≥3:²▌в~╫пT3эwупХ├Р&V&⌠A┬gff ┘EQ┬к╥oъx■yZ^^нЕr.\8pЮy╪fhб╫J&⌠ыlжЭ[<0█m≤ ╓\BипQ╜Vwwwq!~ЬП║N╖s8┤цГСИУz√e?Ч▄Oсj╣'O·ТШЩШШШХ═┼XД└║┴Дффyн·=п╞╢Х°J╔╡ЁЁ█├╒(Аё· щП╬∙кe4╜А@199ИУzЯ FёHpТХя`0┬>÷:uЙе▀║P;555;;▀╞к M▐=╧ 8АA╛╞^╫ J╔*∙ :╗яh╛V╚сИ<|Ь╟шМn<Чж╓╓ё9▌ц┬@╖с║pлS*∙"▀г▐г÷c╠ь╜[╥хoвжжHK▓║┴a≤ШВО[,╡d] zgg'┴дЦqРV╚уb╠X,≈√√(┼ ≤≤p:²M▐Yr·*tцФплC▌дn╥ 3╤b╠HБ0⌡мВНщцE ╕yyВЖЖ6Э╤ДЛЛ, ─@┴TТббЫ( ├││▌ЦЖВВя▒R╘╢╥╥'2╨ж╔ДOY8█C"╫├е#УНщ;tЪpf├┌fAсТ²;w^╬|┴┼ цLNN^╧r÷Y╘THXZ╜E*X__─P(д0лТТТ╠cгпЫ┘B│eы∙∙∙B║Poa╔■$│n╦╫ }+°╘└Гk╣Ж╞2 sЫРЕ╘╘)э~,⌡··╝вхлл ц0Ь║╥3YгeAП СЫ|M[(╗√чч│hJ@Q■╟√уjE2чПh ~ЖЛхiJ╪ЩzqL&J6`~~Чд┴<ьМvaW╔HzНь╢╟╜z )▌6 .≈ ╜b`{{;÷оЦo1,2iА╔82  ╡H┌┐sssХs"▒H$6⌡мМv╩щn╞вш·$╞И т_kЯ@тt4▄▌▌фЦq\Dvww▀еБ┤х3<@ыl√,▓═┤┤┤о²;7??▐▐═|#▒hХУЗ@ 0:::00pЁ╥j╘h2zbёЕ,oyxся�ЮЯxффффггqТ@╣^╫z©Ц="" :мj╣▌▐▐⌠иЬ▌f6э÷╜╜╜ууuРd^?rДх⌠'onэ╦АЯxx√еsЛ╞_©╬Ъ╬╧╧█fe├vsm╜9Э="" ▌7©ji1sw*∙йЕ2гq"Сx0t:²яh▒eт─х-k8Ф╧ЛЯЦгdЬ─╔╔%÷оw,ъ©▐ы!у╪z="" ∙j%⌠и╛╜╜-,,═$'²nЁ,;44тp▄╡%уяrттЗйЕr]╨tИЖМшД┌шd2ыl╤c┤ЫЩ~^d@="q╩щИtA╥║╖(┼╒(Р▒б═©~Щ" �о÷?гa+)▐гs.≈Яsю{w]пmxёвК}="">y∙x<^ok:>11177┤ГRдЗБе▀Го÷ШЖ-Y┐fYЖУКв║PхАpьМЖааA╚у╙сИ ┘╧F╣ыlMu╬Y>²Ъм░╧зф"▐█фh4╨╬╬·J╔╤╤╤ цм⌡7ъ╪yCс4o*ф═eхЕr╧\╝Фu-▀Л O╒jОКХЬvy╡(╔'╗йУКв9▌Ц8noo/ё┐wОч]YYY]]ЩЫСgм╨EE"°ЮKОd;Iф=FU·>}*<Хr╧\.вИс╖Ёыl>÷ъээDыz╣Z5⌡м^╞wxxь`04u9F╛╨w6И╤V╚R5╞≈Z╒ЭO<уьДьёvn⌡x┬П▄рж_аШ^б]Вr^*ЩЁЁPбH╔▌Ч÷└{О∙зxЪТъiГ╤М╧ЫЗo═эп╟Й╘÷CG╠ уW═у▌╜DвщU├m╗^щм⌡E╙╔©йRU7lSЪХ╛╜⌡[■<ц╙Въ■Щсу6│√│Cb∙^ ╜n═▒(▄CБ+≤nSК╚9Ы═Е]╦╥Ь*╗Ъ1r"nтb$IEND╝B`┌<@ыl√,▓═┤┤┤о²;7??▐▐═|#▒hХУЗ@>
 
 Top
ugin_root
Отправлено: 27 Июля, 2011 - 16:39:54
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


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




Sereban
попробуй так
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.    require_once('text/captcha.php');
  3.  
  4.     $phrase = null;
  5.     if (isset($session->phrase) && strlen($session->phrase) > 0)
  6.       $phrase = $session->phrase;
  7.  
  8.     $captcha = new Text_CAPTCHA();
  9.     $captcha->factory('Image');
  10.  
  11.     $opts = array('font_size' => 20,
  12.       'font_path' => 'C:/www/phpweb20/data',
  13.       'font_file' => 'VeraBd.ttf');
  14.  
  15.     $captcha->init(120, 60, $phrase, $opts);
  16.  
  17.     header('Content-type: image/png');
  18.     echo $captcha->getCAPTCHAAsPng();
  19. ?>

что это за манипуляция?
PHP:
скопировать код в буфер обмена
  1. $c = new Text_CAPTCHA();
  2. $captcha = $c->factory('Image');

(Отредактировано автором: 27 Июля, 2011 - 16:41:26)

 
 Top
Sereban
Отправлено: 28 Июля, 2011 - 16:39:49
Post Id


Новичок


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


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




ugin_root пишет:
что это за манипуляция?
CODE (htmlphp):
скопировать код в буфер обмена
  1. $c = new Text_CAPTCHA();
  2. $captcha = $c->factory('Image');

первая строчка - это создание объекта класса Text_CAPTCHA;
вторая строчка - вызов метода factory созданного объекта, в данном случае возвращает объект класса Image_Text вроде бы.

я поковырялся немного внутри классов, где возникали ошибки. кое-что исправил.
теперь капча работает. пока вроде бы без багов.

<?php
require_once('text/captcha.php');

$phrase = null;

$captcha = Text_CAPTCHA::factory('Image');

$imageOptions = array(
'font_size' => 24,
'font_path' => '../data',
'font_file' => 'VeraBd.TTF',
'text_color' => '#DDFF99',
'lines_color' => '#CCEEDD',
'background_color' => '#555555',
'antialias' => true
);

$captcha->init(200, 80, $phrase, $imageOptions);

header('Content-type: image/png');
echo $captcha->getCAPTCHAAsPng();

?>

также пришлось изменить кое-что в файле PEAR.php, а именно добавить static к функции isError.
и тут мне не понятно, почему разработчики pear сами этого не сделали???
 
 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