|
 694.5 Кб |
|
| народ, проблема такова:
мне с помощью gd естественно, надо сделать капчу на сайте, все получилос, капча появляется в нужном месте, но в самом начале страницы появляется много случайных символов.
З.Ы. в прикреплении скрин
<?
$img = imagecreatefrompng("img/img.png");
$text1 = rand(0, 9);
$text2 = rand(0, 9);
$text3 = rand(0, 9);
$text4 = rand(0, 9);
$text5 = rand(0, 9);
$text = $text1.$text2.$text3.$text4.$text5;
$md5capture = md5($text);
setcookie("captcha", $md5capture);
define ("YDEST", 1);
define ("YSRC", 0);
define ("WIDTH", 20);
define ("HEIGHT", 33);
define ("IMAGE_TXT", "img/captch.png");
$img_txt = imagecreatefrompng(IMAGE_TXT);
$c = 1;
$xdest = 0;
while($c < 6){
if($c == 1){
$xsrc = $text1*20;
}elseif($c == 2){
$xsrc = $text2*20;
}elseif($c == 3){
$xsrc = $text3*20;
}elseif($c == 4){
$xsrc = $text4*20;
}elseif($c == 5){
$xsrc = $text5*20;
}
imagecopy($img, $img_txt, $xdest, YDEST, $xsrc, YSRC, WIDTH, HEIGHT);
$c++;
$xdest = $xdest + 20;
}
imagepng($img);
imagedestroy($img);
?> | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 11:12)
| | У вас передается заголовок перед выводом ихображения (то есть уже был вывод в браузер) вот поэтому и текст вместо картинки. | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 11:28)
| | я недоговорил, в индексном файле есть картинка, атрибут src её равен captcha.php, а каптча.пхп это собсно и есть тот файл листинг которого был выше. картинка показывется в нужном месте и все в принципе работает, но этот текст абсолютно не нужен мне | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 11:34)
| | Еще раз повторяю, если до вывода изображения этим скриптом, был вывод в браузер (например, заголовок, текст и прочее), то вы не увидите изображения, а его содержимое ввиде текста. | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 12:05)
| | как же тогда делают капчи? дело в том что если я в каптче обьявлю хедер картинкой, то в итоге на странице кроме картинки ничего невыведется | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 12:39)
| | У вас должен быть запрос к отдельному скрипту, который и выводит каптчу в браузер и ничего кроме нее. Либо нужно воспользоваться буферизацией вывода. | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 12:55)
| | Так и есть, captcha.php выводит только картинку, но индекс обращясь к каптчи должен и текст и картинку вывести. Что такое буферизация вывода? Кэширование чтоли? | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 13:21)
| | Не понял. Какой индекс? А текст (код секретный) пишется прямо на изображении. Или вы о каком тексте?
PS. Кстати, приведенный вами код, отдельно выполненный, будет работать без проблем, правда на каптчу это совсем не похоже, если только только на изображении, которое у вас лежит в папке, не содержится самого "секретного" кода. Но это уже не каптча, а бог знает весть что. Зачем такие премудрости? | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 13:22)
| | Индекс - index.php{
...
<img src="captcha.php">
...
}
Текст всмысле, хтмл код самой страницы, посмотри пожалста скрин, я обьяснять плохо умею. | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 13:36)
| | Прочтите выше. Зайдите в раздел загрузок SoftTime, там есть готовый код каптчи. Скачайте его и изучите. | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 13:22)
| | тот с которым надо будет сверять переданный юзером код если я правильно понял.
Как алтернатива, можно сохранять изображение в файл и после его вывода в браузер удалять. | |
|
|
|
|
|
|
|
для: Valick
(01.11.2008 в 13:38)
| | Это я знаю, для чего он. Вы посмотрите сам код автора.)
PS. Выести в файл... а пользователь закроет браузер, тогда? | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 13:39)
| | мне пока неважно что он прост, сейчас главное отладка, а потом можно и волновые искажения | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 13:45)
| | Да и без искажения не понять - где и как вы наносите текст на изображение? | |
|
|
|
|
|
|
|
для: sim5
(01.11.2008 в 13:47)
| | в качастве текста используется картинка с набором символов.
не подскажеш, что делает
RewriteRule images/scode.gif /index.php
в .htaccess | |
|
|
|
|
|
|
|
для: nikita2206
(01.11.2008 в 13:53)
| | Менять src вашего изображения на этот адрес, только уж больно он у вас вычурный, а другими словами глупый. В раздел Апач, смотреть там работу с примерами.
Что касается каптчи, то это геморрой что вы сделали. Есть функции которыми вы можете делать надписи на изображении, и проще, и код будет легче. | |
|
|
|