Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> напечатать картинку 
V
    Опции темы
gcc
Дата 21.5.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



Код
use CGI qw/:standard/;

print header(-type=>"*/*",-charset=>"utf-8");

print "Content-Length: 61262\n\n";
open (IMG,"/photo/runningb.jpg");
binmode IMG;
binmode STDOUT;
print <IMG>;
close (IMG);


Скрытый текст
�����JFIF��H�H����4Photoshop 3.0�8BIM�������H�����H����8BIM��������������8BIM'����� ��������8BIM������H�/ff��lff�������/ff������������2����Z���������5����-��������8BIM������p������������������������������������������������������������������������������������������������������������8BIM���������Adobe�d���������                                                                                   �����"���?���������� �������� � 3�!1AQa"q�2���B#$R�b34r��C%�S���cs5���&D�TdE£t6�U�e���u��F'�������������Vfv��������7GWgw���������5�!1AQaq"2����B#�R��3$b�r��CScs4�%���&5��D�T�dEU6te����u��F�������������Vfv��������'7GWgw��������� ��� ��?��͡��������{8w�W�+��?�P����es�9n��F��-<:���g�s@��'ܲΡ� 괨����^ d9��}�DGv�SCosA�4�! �[��c�>����� �aAݑgϲL<{u������<��>~i�K8�N�W�6��i�6��66�'�Z�>�V+���k�T�w6N�E̲=W��$���Cu��*�$���&U���G��k��2˪�� �1���SW�u��]_�9ϥ�7���p�������߬X��G���*�s��3�6�;�=Y��o��J�L,�X{�a���{Uly'�X���


выносит в текстовом формате любые картинки, как исправить?? найти не могу

не получаеться!!


вот я хочу вывести картинку между своими шаблонами!! 

Код
 
#!/usr/local/bin/perl

#use strict;
#use CGI qw(:standard);
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
#use CGI 'param','header';
use DBD::mysql;
use Math::Round qw(nearest);
use Image::Magick;

#use strict;
use warnings;
use CGI::Cookie;
use Storable;
use vars '$dbh', '%user_vars';
use CGI qw(param);
use POSIX;
use Digest::MD5 qw(md5_hex);
use Encode qw(encode_utf8);
use CGI qw/:standard/;

print header(-type=>"*/*",-charset=>"utf-8");
#print header(-type=>"Content-Type: image/jpeg",-charset=>"utf-8");

$query = CGI->new();
$action=$query->param("action");

use GD::SecurityImage;

   # Create a normal image
   my $image = GD::SecurityImage->new(width   => 80,
                                      height  => 30,
                                      lines   => 10,
                                      gd_font => 'giant');
      $image->random($your_random_str);
      $image->create(normal => 'rect');
   my($image_data, $mime_type, $random_number) = $image->out;
   

binmode STDOUT;
#   print header -type => "image/$mime_type";
   print $image_data;


Код
use CGI qw(header);
   use GD::SecurityImage 1.64; # we need the "blank" style
   
   my $font  = "StayPuft.ttf";
   my $rnd   = "10.257"; # counter data
   
   my $image = GD::SecurityImage->new(
      width  =>   140,
      height =>    75,
      ptsize =>    30,
      rndmax =>     1, # keeping this low helps to display short strings
      frame  =>     0, # disable borders
      font   => $font,
   );
   
   $image->random( $rnd );
   # use the blank style, so that nothing will be drawn
   # to distort the image.
   $image->create( ttf => 'blank', '#CC8A00' );
   $image->info_text(
      text   => 'You are visitor number',
      ptsize => 10,
      strip  =>  0,
      color  => '#0094CC',
   );
   $image->info_text(
      text   => '( c ) 2 0 0 7   m y s i t e',
      ptsize => 10,
      strip  =>  0,
      color  => '#d7d7d7',
      y      => 'down',
   );
   
   my($data, $mime, $random) = $image->out;
   
   binmode STDOUT;
   print header -type => "image/$mime";
   print $data;


http://search.cpan.org/dist/GD-SecurityIma...ecurityImage.pm


все остально работает - получаеться, еще куки не работают и редирект, наверно что-то с cgi модулем? н оя не понял что он хочет еще?
подскажите как вывести это изображение?
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 22.5.2008, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 2
Всего: 27



Код

#!perl

use CGI;
use CGI::Carp 'fatalsToBrowser';

my $q = CGI->new;

open(my $fh, 'pic.jpg') || die $!;
my $pic = do { local $/ = undef; <$fh>};
close $fh;

print $q->header(-type => 'image/jpeg');
binmode STDOUT;
print $pic

Вот это по идее должно работать


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
gcc
Дата 22.5.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



спасибо!

я еще сделал:

1) открыл картинку в срипте cgi
2) вставил всрипт cgi скрипт как картинку
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 22.5.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



не работает!
Код



my $q = CGI->new;

use GD::SecurityImage;
   # Create a normal image
   my $image = GD::SecurityImage->new(width   => 80,
                                      height  => 30,
                                      lines   => 10,
                                      gd_font => 'giant');
      $image->random($your_random_str);
      $image->create(normal => 'rect');
   my($image_data, $mime_type, $random_number) = $image->out;
   
binmode STDOUT;
   print $q->header -type => "*/*";
   print $image_data;



тоест ьмне нужно передать закодированно число и картинку, можите показать правильно как?

Код

header -type => "*/*";


это означает любой тип, короче не хочет работаеть! 

подскажимте полностью пожалуйста!

ИЛИ

если поставить вот так:
<img src="my_image_script.cgi" />

то как сделать проверку вводимого числа? как передать число? или тчо нужно сделать?

Это сообщение отредактировал(а) gcc - 22.5.2008, 15:57
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 23.5.2008, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



gcc, проверьте так:
Код

...
print $q->header(-type => $mime_type);
...


Добавлено через 21 секунду
Не зря ведь вы его получаете ;)

Добавлено через 2 минуты и 14 секунд
Просто обычно это PNG, а не JPG/JPEG


--------------------
PM   Вверх
nitr
Дата 25.5.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



gcc, закрывайте тему, раз помогло ;)


--------------------
PM   Вверх
gcc
Дата 25.5.2008, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



сори, я не пробовал еще, я замучался с этой картинкой, что не хочу печатать, поже попробую сделать, но по-моиму пробовал так как вы написали...  smile 
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 25.5.2008, 04:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



Если верить документации:
Код

   my ($image_data, $mime_type, $random_number) = $image->out;
   binmode STDOUT;
   print $q->header(-type => "image/$mime_type");
   print $image_data;

Но у меня с примером выше работает.


--------------------
PM   Вверх
KSURi
Дата 25.5.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 2
Всего: 27



У меня на апаче 2.х отрабатывало и без binmode вообще.
PS: я не понимаю, зачем надо делать binmode на оба потока, вернее, что так делать и не надо вроде; делать надо на тот поток, который по умолчанию не принимает/отображает или некорректно обрабатывает непечатные символы.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
gcc
Дата 14.6.2008, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



не работает, все что пишу - не хочет работать

вод пример, код картинки в середине, кто-то скажет гже ошибка пожалуйста?

Код

#!/usr/local/bin/perl

#use strict;
#use CGI qw(:standard);
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
#use CGI 'param','header';
use DBD::mysql;
use Math::Round qw(nearest);
use Image::Magick;

#use strict;
use warnings;
use CGI::Cookie;
use Storable;
use vars '$dbh', '%user_vars';
use CGI qw(param);
use POSIX;
use Digest::MD5 qw(md5_hex);
use Encode qw(encode_utf8);
use CGI qw/:standard/;




print header(-type=>"*/*",-charset=>"utf-8");


#require "dev.pl";











$query = CGI->new();
$action=$query->param("action");
$reg=$query->param("reg");


$sitedir="/usr/local/www/q21/sites/";
$subdir="thumbnails/000$num.jpg";
$fullfilename="$sitedir$subdir";



















sub filelock {
flock(DB,2);
}
sub fileunlock {
flock(DB,8);
}

sub get_time {
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
 $mon++;
 $year+=1900;
 if ($mday<10) { $mday="0$mday"; }
 if ($mon<10) { $mon="0$mon"; }
 if ($min<10) { $min="0$min"; }
 $date="$mday $mon $year";
 $time="$hour:$min:$sec";
 $cur_all_day=$mday+$mon*30+$year*365;
}








if ($action=~/faq$/i){
#head_page();

mydate();

#end_page();
}


elsif ($action=~/new$/i){
#heeader();

subheader();

#left_list_dj2();
#left_dj_detalis1();
#rith_table_stati2();
#footer();
}






elsif ($action=~/support$/i){
#logout();
#heeader();
subheader();
#left_list_dj2();
#left_dj_detalis1();
#rith_table_stati2();
#footer();
}

elsif ($reg){
reg();
}




else  {
#heeader();
#subheader();
left_list_dj2();
#left_dj_detalis1();
#rith_table_stati2();
#footer();
}






my @rnd_txt = ('0','1','2','3','4','5','6','7','8','9',
                 'a','b','c','d','e','f','g','h','i','j',
                 'k','l','m','n','o','p','r','s','t','u',
                 'v','w','x','y','z');
    srand;

# Генерим ключ 
    for (0..5) {
        my $s = rand(@rnd_txt);
        $passr .= $rnd_txt[$s]
    }
















sub left_list_dj2 {


print << "[INFO5]";

<html>




<title>Добавить сайт</title>

<body>

<p align="center"><strong><font size="5">Global Hosting</font></strong></p>


<hr>


<p align="center"><strong><font size="2"color=red>ВНИМАНИЕ! Заполните пожалуйста все поля</font></strong></p>
<p align="center"><strong><font size="2"color=red>Главная тсраница еще не готова!</font></strong></p>


<form action="/cgi-bin/add" method="POST">
  <div align="center"><center><table border="0" cellspacing="0">
    <tr>
      <td align="right">Login:</td>
      <td colspan="2"><input type="hiden" name="login" size="15"> [a-b][0-9]от 2 до 15 символов      </td>
    </tr>

    <tr>
      <td align="right">Passwd:</td>
      <td colspan="2"><input type="password" name="passwd" size="15"> можите ввести сгенерируемый пароль: <b>$passr<b>  от 6 до 15 символов <font color=red>(пожалуйста, придумайте надежный пароль)</font></td>
    </tr>

    <tr>
      <td align="right">Passwd:</td>
      <td colspan="2"><input type="password" name="passwd2" size="15"> повторите</font></td>
    </tr>


    <tr>
      <td align="right">Country:</td>
      <td colspan="2"><input type="hiden" name="country" size="15"></td>
    </tr>

    <tr>
      <td align="right">City:</td>
      <td colspan="2"><input type="hiden" name="city" size="15"></td>
    </tr>
    <tr>
      <td align="right">E-mail:</td>
      <td colspan="2"><input type="hiden" name="email" size="15"></td>
    </tr>
    <tr>
      <td align="right">Title:</td>
      <td colspan="2"><input type="hiden" name="title" size="15"> Название вашего сайта (для базы данных, идентификации)</td>
    </tr>
      <td></td>
      <td align="center"><input type="submit" name="reg" value="Добавить"></td>
      <td align="center"><input type="reset" value="Очистить"></td>
    </tr>
  </table>

[INFO5]
  



  

   use GD::SecurityImage 1.64; # we need the "blank" style
   
   my $font  = "StayPuft.ttf";
   my $rnd   = "10.257"; # counter data
   
   my $image = GD::SecurityImage->new(
      width  =>   140,
      height =>    75,
      ptsize =>    30,
      rndmax =>     1, # keeping this low helps to display short strings
      frame  =>     0, # disable borders
      font   => $font,
   );
   
   $image->random( $rnd );
   # use the blank style, so that nothing will be drawn
   # to distort the image.
   $image->create( ttf => 'blank', '#CC8A00' );
   $image->info_text(
      text   => 'You are visitor number',
      ptsize => 10,
      strip  =>  0,
      color  => '#0094CC',
   );
   $image->info_text(
      text   => '( c ) 2 0 0 7   m y s i t e',
      ptsize => 10,
      strip  =>  0,
      color  => '#d7d7d7',
      y      => 'down',
   );
   
   my($data, $mime, $random) = $image->out;
   
   binmode STDOUT;

print $q->header(-type => $mime_type);

   print header -type => "$mime";
   print $data;  
  

  
  
  
  
  
print << "[INFO5]";
  
</center></div>
</form>

<hr>

<p align="center"><a href="http://o">Инструкция, рекомендации обсуждения!Обьязательно посетите/a> </p>

</body>
</html>

[INFO5]






exit;
}


sub reg {


$login=$query->param("login");
$passs=$query->param("passwd");
$passs2=$query->param("passwd2");
$country=$query->param("country");
$city=$query->param("city");
$email=$query->param("email");
$title=$query->param("title");






## �?�?�?�? �?�?�?�? HTTP_X_FORWARDED_FOR �?���?�?�?�?�?�?�? 
if ( $ENV{ HTTP_X_FORWARDED_FOR } ) { 

   ## �? ���?�?�?�?�?�?�?�?�? $ip �?�?���?�?�?�?�?�?�?�?�? IP-�?�?�?�?�? 
   ## �?�?�?�?�?�?�?, ���?�?�?�?�?�?�?�?�?�?���? �?�?�?�?�? ���?�?�?�?�? 
   $ip = $ENV{ HTTP_X_FORWARDED_FOR}; 
} else { 

   ## �? ���?�?�?�?�?�?�?�? �?�?�?�?�?�? �?�?���?�?�?�? �? $ip 
   ## �?�?�?�?�?�?�?�?�? IP-�?�?�?�?�? �?�?�?�?�?�?�? 
   $ip = $ENV{ REMOTE_ADDR }; 
} 






$n=0;

#логин

$login =~ s/^\\s+//;
$login =~ s/\\s+$//;


#$login =~ s/\t\n\r\f\v/;
        

print << "[INFO5]";
<html>
<title>Добавить сайт</title>

<body>

<p align="center"><strong><font size="5"></font></strong></p>


<hr>
[INFO5]


if ((!length($login)) || (30 < length($login)) || ( 1 > length($login)) || (!$login =~ /^[A-Za-z0-9]+$/)) {

print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Вы не ввели длогин logi0, логин должен быть от 2 до 30 символов</strong></div><br>

[INFO]
$n++;
}


$passs =~ s/^\\s+//;
$passs =~ s/\\s+$//;
$passs =~ s/\t\n\r\f\v//;


if ($passs !~ $passs2) {
print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>Пароли не совпали</strong></div><br>

[INFO]
$n++;
}



if ((!length($passs)) || (30 < length($passs)) || ( 7 > length($passs)) || (!$passs =~ /^[A-Za-z0-9]+$/)) {

print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Пароли не правильные, должно быть 7 символов

[INFO]
$n++;
}


if ($passs !~ $passs2) {
print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>Пароли не совпали</strong></div><br>

[INFO]
$n++;
}




$country =~ s/^\\s+//;
$country =~ s/\\s+$//;
$country =~ s/\\s+/ /g;

#$country =~ s/[^ a-z0-9\\/\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\_\\=\\+\\\\\\|\\[\\{\\]\\}\\;\\:\\''\\"\\,\\<\\.\\>\\?\\t\\n]//gi;



if ((!length($country)) || (1000 < length($country)) || ( 2 > length($country)) || ($country=~ /^[A-Za-z]w+$/) ) {

print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Город</strong></div><br>
 
[INFO]
$n++;
}


$city =~ s/^\\s+//;
$city =~ s/\\s+$//;
$city =~ s/\\s+/ /g;


#$city =~ s/[^ a-z0-9\\/\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\_\\=\\+\\\\\\|\\[\\{\\]\\}\\;\\:\\''\\"\\,\\<\\.\\>\\?\\t\\n]//gi;

  
#($country=~ /^[A-Za-z]\w+$/)

if ((!length($city)) || (1000 < length($city)) || ( 3 > length($city)) || ($country=~ /^[A-Za-z]w+$/) ) {

print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Страна </strong></div><br>
 
[INFO]
$n++;
}





$email =~ s/&/&amp;/go;
$email =~ s/</&lt;/go;
$email =~ s/</&gt;/go;
$email =~ s/'/&apos;/go;
$email =~ s/"/&quot;/go;

if ((!length($email)) || (1000 < length($email)) || ( 3 > length($email)) || (!$email =~ /^[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*\\@[a-zA-Z\\.-\\d]+\\.[a-zA-Z]{2,4}$/) ) {

print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> мыло </strong></div><br>
 
[INFO]
$n++;
}



$title =~ s/&/&amp;/go;
$title =~ s/</&lt;/go;
$title =~ s/</&gt;/go;
$title =~ s/'/&apos;/go;
$title =~ s/"/&quot;/go;
  

if ((!length($title)) || (1000 < length($title)) || ( 3 > length($title))) {

print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong> Вы не ввели длогин ФИО, имя должен быть с не менее чем 2 символа и не более 50 символов</strong></div><br>
 
[INFO]
$n++;
}















my $dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost", { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;

my $sth = $dbh->prepare('SELECT id
                             FROM users 
                             WHERE name = ?
                             LIMIT 1');
    $sth->execute($login); 
        my $ln = $sth->fetchrow_hashref();
    $sth->finish(); 
$dbh->disconnect();
# �?�?�?�? �?�?�?�?�?�? �?�?�?�? �? �?�?�? �?�? ���?�?�?�?�?�?�?
    if ($ln && $ln > 0) {


print << "[INFO]";

<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>Логи нуже присутсвует</strong></div><br>

[INFO]
}











my $dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost",, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;

my $sth = $dbh->prepare('SELECT id
                             FROM users 
                             WHERE email = ?
                             LIMIT 1');
    $sth->execute($email); 
        my $le = $sth->fetchrow_hashref();

    $sth->finish(); 
$dbh->disconnect();
# �?�?�?�? �?�?�?�?�?�? �?�?�?�? �? �?�?�? �?�? ���?�?�?�?�?�?�?
    if ($le && $le > 0) {


print << "[INFO]";



<div style="margin-left:18px; margin-top:15px;" class="yellow"><strong>данный адресс $email уже существует</strong></div><br>


[INFO]
}



print "$title";
print "$email";
print "$city";
print "$country";
print "$passs";
print "$passs2";
print "$login";



if ($n > "0") {

print << "[INFO5]";

<p align="center"><strong><font size="2"color=red>ВНИМАНИЕ! Заполните пожалуйста все поля</font></strong></p>
<p align="center"><strong><font size="2"color=red>Главная тсраница еще не готова!</font></strong></p>


<form action="/cgi-bin/add" method="POST">
  <div align="center"><center><table border="0" cellspacing="0">
    <tr>
      <td align="right">Login:</td>
      <td colspan="2"><input type="hiden" name="login" size="15"> [a-b][0-9]от 2 до 15 символов      </td>
    </tr>

    <tr>
      <td align="right">Passwd:</td>
      <td colspan="2"><input type="password" name="passwd" size="15"> можите ввести сгенерируемый пароль: <b>$passr<b>! от 6 до 15 символов <font color=red>(пожалуйста, придумайте надежный пароль)</font></td>
    </tr>

    <tr>
      <td align="right">Passwd:</td>
      <td colspan="2"><input type="password" name="passwd" size="15"> повторите</font></td>
    </tr>


    <tr>
      <td align="right">Country:</td>
      <td colspan="2"><input type="hiden" name="country" size="15"></td>
    </tr>

    <tr>
      <td align="right">City:</td>
      <td colspan="2"><input type="hiden" name="city" size="15"></td>
    </tr>
    <tr>
      <td align="right">E-mail:</td>
      <td colspan="2"><input type="hiden" name="email" size="15"></td>
    </tr>
    <tr>
      <td align="right">Title:</td>
      <td colspan="2"><input type="hiden" name="title" size="15"> Название вашего сайта (для базы данных, идентификации)</td>
    </tr>
      <td></td>
      <td align="center"><input type="submit" name="reg" value="Добавить"></td>
      <td align="center"><input type="reset" value="Очистить"></td>
    </tr>
  </table>
  </center></div>
</form>

<hr>

<p align="center"><a href="http://open-dj.2info.dp.ua">Инструкция, рекомендации обсуждения!Обьязательно посетите/a> </p>

</body>
</html>
[INFO5]
exit;
}




($sec,$min,$hour,$mday) = localtime(time);
$ttt=time;
#print "$ttt";






my @rnd_txt = ('0','1','2','3','4','5','6','7','8','9');
    srand;

# Генерим ключ 
    for (0..5) {
        my $s = rand(@rnd_txt);
        $session .= $rnd_txt[$s]
    }

print "pp";
$qhost="host_$session";





print $qhost;






my $ip0="1";
my $email0="1";
my $datetime=$ttt;
my $passsh = md5_hex($passs);
my $datecurrent_in="1";
my $datereg="1";
my $info=$title;

print "$passsh";
 $dbh = DBI->connect("DBI:mysql:database=hosting_db;host=localhost",, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;

$result = $dbh->prepare("INSERT INTO users ( name, pass, ip, country,city, email, info, ip0, email0, registr, datetime, datetimecur, q) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)") || die "aw";

 $result->execute($login, $passsh, $ip, $country, $city, $email, $info, $ip0, $email0, $datereg, $datetime,  $datecurrent_in, $qhost);

 $dbh->disconnect();










print << "[INFO5]";
<p align="center"><strong><font size="2"color=red>ВНИМАНИЕ! Заполните пожалуйста все поля</font></strong></p>
<p align="center"><strong><font size="2"color=red>Главная тсраница еще не готова!</font></strong></p>
<p align="center"><strong><font size="2"color=red>акаунт создан!</font></strong></p>
<hr>
<p align="center"><a href=>Инструкция, рекомендации обсуждения!Обьязательно посетите/a> </p>
</body>
</html>
[INFO5]
exit;
}




если поставить 


Код

print header(-type =>image/$mime);


пишет:
Illegal division by zero at add line 286.



Это сообщение отредактировал(а) gcc - 14.6.2008, 05:41
PM WWW ICQ Skype GTalk Jabber   Вверх
Itsys
Дата 14.6.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: нет
Всего: 34



Я не стал сильно копаться в твоем скрипте, но проблема в том, что ты пытаешься вставить содержимое картинки прямо в HTML, он тебе ее и показывает. Так что скрипт работает верно. Для того чтобы вставить в HTML именно картинку, а не ее машинное представление, необходимо указывать так:
Код

<img src="gen_pic.pl">


gen_pic.pl (например, как написал KSURi - здесь):
Код

#!perl

use CGI;
use CGI::Carp 'fatalsToBrowser';

my $q = CGI->new;

open(my $fh, 'pic.jpg') || die $!;
my $pic = do { local $/ = undef; <$fh>};
close $fh;

print $q->header(-type => 'image/jpeg');
binmode STDOUT;
print $pic


PM MAIL WWW Skype   Вверх
tolkien
Дата 14.6.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: нет
Всего: 4



Я так понял. Вы генерите на лету html страничку и картинку. При этом код картинке вставляете в html документ. Отправляете заголовок Content-Type: */*; charset=utf-8. Откуда браузер знает как отобразить данный документ? Ему что надо самому догадки строить? 

Короче отправляйте заголовок text/html.  Картинку. Сохраните в файл. И ссылку на нее вставте в документ, в тег <img>. 


PM MAIL   Вверх
nitr
Дата 14.6.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



Цитата(gcc @  14.6.2008,  05:33 Найти цитируемый пост)
если поставить 

Выделить всёкод Perl
1:
    
print header(-type =>image/$mime);


пишет:
Illegal division by zero at add line 286.


Исправьте на:
Код
print header(-type => "image/$mime");


tolkien, такой способ работает 101% smile С PNG я работал, вроде с другими тоже работает, лично я не мучился.

gcc, лучше в отдельный скрипт вынести код генерации картинки, как подсказал Itsys, вам же легче разбираться.
gcc, и ещё посмотрите на ошибки в логах сервера, т.к. простые скрипты работают, как уже выше говорил.

Добавлено через 30 секунд
gcc, у вас $mime определён?


--------------------
PM   Вверх
gcc
Дата 16.6.2008, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



nitr, определено:
Код

png


просто если ставить так 

Код

<img src="gen_pic.pl">


но нужно делать запрос в базу еще, чтобы узнать число которое на картинке (именно так и сделал).

тут написано, что можно в cgi вставить?

Код

 Выходим в онлайн

Ну вот, кое-что делать мы уже научились. Теперь давайте свернем поближе к вебу. Можем ли мы на лету вывести изображение через CGI? Запросто. Добавьте эти строки в программу вместо ранее используемого вывода в файл.

    # Выключение буферизации, необходимое для нормального вывода изображения.
    select(STDOUT);
    $  = 1;
    undef $/;

    print "Content-type: image/jpeg\n\n";
    print $im->jpeg(100);



если можно вставить сразу через cgi скрипт, то покажите 100% работающий если не сложно...

Это сообщение отредактировал(а) gcc - 16.6.2008, 03:20
PM WWW ICQ Skype GTalk Jabber   Вверх
tolkien
Дата 16.6.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: нет
Всего: 4



Смотри на заголовок в примере "print "Content-type: image/jpeg\n\n";"
Отправляется только картинка. 
Ты где нибудь вобще встречал html документ с внедренными бинарными данными? Если да. То дай ссылку на такой экземпляр. Я тоже на него посмотрю.
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.