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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка CGI, Возникает ошибка при запуске сценария 
:(
    Опции темы
kentochek
Дата 25.5.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



При запуске на хостинге своего скрипта, возникает такая ошибка

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
В чем может быть проблема, помогите плиз...

P.S. на локальной машине все нормально работает

Это сообщение отредактировал(а) kentochek - 25.5.2007, 13:01
PM MAIL   Вверх
nitr
Дата 25.5.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



kentochek, покажите кусок скрипта с передачей заголовка... или так сказать - начало самого скрипта smile


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


Новичок



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

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



Цитата(nitr @ 25.5.2007,  14:27)
kentochek, покажите кусок скрипта с передачей заголовка... или так сказать - начало самого скрипта smile

#! perl -wT

use strict;
use lib qw(.);
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser); 

$|=1;
my %Form;
my @pairs=split(/&/,$ENV{'QUERY_STRING'});
my @NewPairs;

foreach (@pairs){
    my($name,$value)=split(/=/,$_);
        push(@NewPairs,$name);
    push(@NewPairs,$value);
    $value=~tr/+/ /;
    $value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
    $Form{$name}=$value;
}

print "Content-type: text/html\n\n";
...
Далее пошли различные обработки...
PM MAIL   Вверх
Nab
Дата 25.5.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 37



kentochek, из какой древней книжки вы берете свои рецепты?

все что Вы тут привели, дублируется два раза...

Достаточно вот этого:

Код

#!perl -wT

use strict;
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser); 

my $q = CGI->new;

print "Content-type: text/html\n\n";
...

вместо своих

$Form{Имя параметра}

теперь можно использовать

$q->param(Имя параметра)



Но даже с Вашим кодом не должно вызывать ошибку....

Приводите скрипт полностью...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
kentochek
Дата 25.5.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



#! perl -wT

use strict;
use lib qw(.);
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser); 

#####Подключаем модули которые выводят разметку страницы
use Main;                #####выводим текст на главной странице
use MainPage_Top;    #####заголовок страницы и меню
use MainPage_Bottom; #####низ страницы и закрывающие теги


$|=1;
my %Form;
my @pairs=split(/&/,$ENV{'QUERY_STRING'});
my @NewPairs;

foreach (@pairs){
    my($name,$value)=split(/=/,$_);
        push(@NewPairs,$name);
    push(@NewPairs,$value);
    $value=~tr/+/ /;
    $value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
    $Form{$name}=$value;
}

print "Content-type: text/html\n\n";

if(($NewPairs[1] eq 'Main') or (!param()))
{
  MainPage_Top->Top; 
  Main->Main_Page;  
  MainPage_Bottom->Bottom;
  print qq(</tr></table></body></html>);
}

Тело модулей (к примеру Main.pm)

package Main;

use strict;
            
sub Main_Page{

print <<HTML;
      <tr>
      <td align="center"><font class=c_name_header>Text_0</font></td>
          </tr>
          <tr>
          <td height="100%" class="body_txt" style="padding-left:5">
          <font size=2 style="padding-left:35">Text_2<br><br></font>
      <font style="padding-left:35" size=2>Text_1<br></font>
          <br></td>
          </tr>
HTML
}
1;

В остальных модулях, вывод производится аналогично, т.е. там выводится разметка самой HTML страницы...
PM MAIL   Вверх
Nab
Дата 25.5.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 37



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

поставьте вместо ваших абсолютно некорректных '#! perl -wT'

нормальную строку 
Код

#!/usr/bin/perl

Первая строка файла и БЕЗ пробелов!!!!

А вообщеб разбирать ваш код не пожелаю никому... :( так уже давно не пишут...  smile 
хотя если вы учитесь то норм smile но не изобретайте велосипед все одно smile


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
kentochek
Дата 25.5.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Nab @ 25.5.2007,  17:05)
хотя если вы учитесь то норм smile 
так уже давно не пишут...  smile 

Да, учусь пока  smile 
А как щас принято писать?
PM MAIL   Вверх
Nab
Дата 26.5.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 37



Так заработало, или нет?


Цитата(kentochek @  25.5.2007,  20:31 Найти цитируемый пост)
А как щас принято писать?

ну тут вопрос сложный smile

Если вы генерите весь вывод скриптом, то можно заюзать соответствующие функции CGI.pm, или аналогичного...
почитайте документацию по нему... была гдето даже на русском... поищите в прикрепленных топиках на форуме...

Но наверно набирающий сейчас обороты, это способ когда данные отдельно, представление отдельно и оформление тоже отдельно smile
То есть использование какой либо системы шаблонов для генерации кода и CSS для последующего его приведения к необходимому виду...

Для начала я рекомендую поглядеть на HTML::Template, как простой, но в тоже время вполне достаточный для большинства задач. Хотя альтернатив предостаточно, это и более мощная, даже слишком как по мне, TemplateToolkit, и мало мне знакомый Petal, и еще несколько, да и свою написать не так сложно... Когда-то в бытнось мою чайником я тоже простенькую писал smile


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
nitr
Дата 26.5.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Nab @  26.5.2007,  00:28 Найти цитируемый пост)
Если вы генерите весь вывод скриптом, то можно заюзать соответствующие функции CGI.pm, или аналогичного...почитайте документацию по нему... была гдето даже на русском... поищите в прикрепленных топиках на форуме...

вроде даже тут доступно smile
http://forum.vingrad.ru/forum/topic-1167.html


--------------------
PM   Вверх
djkostya
Дата 27.5.2007, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



По ходу
А что означает 

Код

$|=1;


?????????????????
PM MAIL WWW ICQ   Вверх
Nab
Дата 27.5.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 37



Код

$|=1;

Отключает буферизацию для текущего STDOUT....
То есть вывод строки, на экран к примеру, произойдет сразу после символа перевода строки, или окончания текста, а не после заполнения буфера терминала.... По моим наблюдениям около 4 килобайт.


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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