Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 12:52   #1
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию Работа с изображениями

Сделал капчу на сайт, на отдельной странице она работает , а вот в html форму положить её не могу.
Вот код функции:
Код:
function captha() 
{
for ($k = 1; $k<=5 ; $k++)
{
$text.= rand(1, 9);
}
$img = imagecreatetruecolor(110, 30);
$white = imagecolorallocate($img, 255, 255, 255);
$green = imagecolorallocate($img,   255, 0, 0);
$black = imagecolorallocate($img,   0, 0,   0);
imagesetthickness($img, 2);
imagefill($img, 0, 0, $white); 
for ($i = 1; $i<=5; $i++)
{
$r = $i*15;
if ($i % 2 == 0)
{
$sok=1.3;
}
else
{
$sok= 1.5;
}
imageline($img, 20, 0, 80, 13, $black);
imageellipse ($img, 0, 0, 70, 40, $black);
if ($text{$i-1} == "1") {
imageline($img, 7+$r, 5*$sok, 7+$r, 15*$sok, $green);
imageline($img, 7+$r, 5*$sok, 5+$r, 9*$sok, $green);
}
if ($text{$i-1} == "2") {
imageline($img, 5+$r, 6*$sok, 7+$r, 3*$sok, $green);
imageline($img, 7+$r, 3*$sok, 10+$r, 6*$sok, $green);
imageline($img, 10+$r, 6*$sok, 6+$r, 14*$sok, $green);
imageline($img, 6+$r, 14*$sok, 10+$r, 14*$sok, $green);
}
if ($text{$i-1} == "3") {
imageline($img, 5+$r, 5*$sok, 10+$r, 5*$sok, $green);
imageline($img, 10+$r, 5*$sok, 10+$r, 10*$sok, $green);
imageline($img, 10+$r, 10*$sok, 5+$r, 10*$sok, $green);
imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $green);
imageline($img, 10+$r, 15*$sok, 5+$r, 15*$sok, $green);
}
if ($text{$i-1} == "4") {
imageline($img, 5+$r, 4*$sok, 5+$r, 10*$sok, $green);
imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $green);
imageline($img, 10+$r, 10*$sok, 10+$r, 4*$sok, $green);
imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $green);
}
if ($text{$i-1} == "5") {
imageline($img, 5+$r, 4*$sok, 11+$r, 4*$sok, $green);
imageline($img, 5+$r, 4*$sok, 5+$r, 10*$sok, $green);
imageline($img, 5+$r, 10*$sok, 11+$r, 10*$sok, $green);
imageline($img, 11+$r, 11*$sok, 11+$r, 15*$sok, $green);
imageline($img, 11+$r, 15*$sok, 5+$r, 15*$sok, $green);
}
if ($text{$i-1} == "6") {
imageline($img, 10+$r, 4*$sok, 5+$r, 4*$sok, $green);
imageline($img, 5+$r, 4*$sok, 5+$r, 15*$sok, $green);
imageline($img, 5+$r, 15*$sok, 10+$r, 15*$sok, $green);
imageline($img, 10+$r, 15*$sok, 10+$r, 10*$sok, $green);
imageline($img, 10+$r, 10*$sok, 5+$r, 10*$sok, $green);
}
if ($text{$i-1} == "7") {
imageline($img, 5+$r, 5*$sok, 11+$r, 5*$sok, $green);
imageline($img, 11+$r, 5*$sok, 7+$r, 15*$sok, $green);
}
if ($text{$i-1} == "8") {
imageline($img, 5+$r, 5*$sok,  10+$r, 5*$sok, $green);
imageline($img, 5+$r, 5*$sok,  5+$r,  10*$sok, $green);
imageline($img, 5+$r, 10*$sok, 10+$r, 10*$sok, $green);
imageline($img, 10+$r,10*$sok, 10+$r, 5*$sok, $green);
imageline($img, 5+$r, 10*$sok, 5+$r,  15*$sok, $green);
imageline($img, 10+$r,10*$sok, 10+$r, 15*$sok, $green);
imageline($img, 5+$r, 15*$sok, 10+$r, 15*$sok, $green);
}
if ($text{$i-1} == "9") {
imageline($img, 5+$r,  5*$sok,  10+$r, 5*$sok, $green);
imageline($img, 5+$r,  5*$sok,  5+$r,  10*$sok, $green);
imageline($img, 5+$r,  10*$sok, 10+$r, 10*$sok, $green);
imageline($img, 10+$r, 10*$sok, 10+$r, 5*$sok, $green);
imageline($img, 10+$r, 10*$sok, 10+$r, 15*$sok, $green);
imageline($img, 10+$r, 15*$sok, 5+$r, 15*$sok, $green);
}
}
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
}}
При выводе такая ошибка:
Цитата:
Warning: Cannot modify header information - headers already sent by (output started at /home/b/boblab/public_html/reg.php:7) in /home/b/boblab/public_html/reg.php on line 110
�PNG  IHDRnB�mQIDATh���� D������PK)` d�ѲG!>�����ˇG2�f,��4/G4)ӌ���gJ5U�nLּ��7�:ɿ�Qޘ�D�D�b&"� �*�Gx�:��e��v��2^3�.�ǕR�l k/��)� ���mKT6���J�k��æ�~V�R��\L C� F�����F���Ӳ���PN;& Ks���}=�F?�ݔ�~��hMY�Qz�g!X\�/��Tko��j������D!�;��(C�E����>\�# (����y��� Q����amG[[v��}L�B棲�d�è�?���ɥ����������� ��'G��RO�˳IEND�B`�
Видимо на прямую нельзя выводить изображение.
cheef вне форума Ответить с цитированием
Старый 17.03.2011, 13:26   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Выложи код всего файла reg.php.
ssdm вне форума Ответить с цитированием
Старый 17.03.2011, 14:03   #3
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

В сообщение не влезло.
Прикрепил в аттачи.
Вложения
Тип файла: zip reg.php.zip (2.3 Кб, 9 просмотров)
cheef вне форума Ответить с цитированием
Старый 17.03.2011, 14:43   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Попробуй вставить
Код:
header("Cache-control: private");
перед
Код:
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
ssdm вне форума Ответить с цитированием
Старый 17.03.2011, 14:51   #5
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Ломается, видимо сайт пытается вывести картинку, как текст, а не как изображение. Я вот думаю, может попробовать сохранять изображение в корень, и потом доставать оттуда. Но это нерационально как-то.
cheef вне форума Ответить с цитированием
Старый 17.03.2011, 16:38   #6
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Вы совсем все перепутали ... сначала выводите html ... потом ставите хидер (о чем вам и говорит ошибка! - вывод в браузер перед Header все вам ломает), что дескать то что мы до это выводили вовсе не html, а теперь вся ЭТА страница (с html версткой) будет вдруг являться картинкой.
Формируйте картинку в отдельном файле и подключайте черезе <img src='captcha.php'> на вашей странице и все .... просто.

Последний раз редактировалось Cronos20; 17.03.2011 в 16:43.
Cronos20 вне форума Ответить с цитированием
Старый 17.03.2011, 16:44   #7
cheef
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 205
По умолчанию

Спасибо большое.
cheef вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с изображениями tavrocotaps Общие вопросы .NET 6 06.07.2009 20:48
Работа с изображениями Алён@ Мультимедиа в Delphi 8 16.01.2009 10:48
Работа с изображениями. varvara16 Мультимедиа в Delphi 2 21.12.2007 15:52
работа с изображениями. borodaj Мультимедиа в Delphi 3 21.04.2007 19:21