Показать сообщение отдельно
  #5  
Старый 17.03.2002, 15:02
Господин Новичок Господин Новичок вне форума
Студент
 
Регистрация: 17.03.2002
Сообщений: 8
По умолчанию

</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (Костик @ 16 Мар. 2002, 16:55)</td></tr><tr><td id="QUOTE">У меня не работает Perl скрипт и выводит ошибку 500
Я не знаю что у меня не правильно, с chmod-ами всё нормально, а вот это, я не понимаю :

2.Выводите ли вы строку &quot;Content-Type:&quot;?
Правильно ли вы ее выводите?
(Content-type, Content_Type -- неправильно)
Заканчиваете ли вы хедеры пустой строкой? Нельзя написать print &quot;Content-Type: text/html\n&quot;;
Надо писать: print &quot;Content-Type: text/html\n\n&quot;;

3.Также, эта ошибка возникает, если CGI-программа завершилась с ненулевым кодом возврата, что часто встречается в случае некомпилируемости вашего скрипта perl'ом.

Объясните пожалуйста что надо вставить в этот скрипт:
#!/usr/bin/perl
require 'cgi-lib.pl';

&amp;ReadParse(*field);
$textfield = $field{'textarea'} ;
$submit = $field{'submit'} ;

open (WRITE, &quot;&lt;../User/user.txt&quot or die (&quot;Ошибка!&quot;
flock WRITE, LOCK_EX;
print &quot;Content-Type: text/html\n\n&quot;;
print WRITE &quot;$textfield\n&quot;;
print WRITE, &quot;$submit\n&quot;;
flock WRITE, LOCK_UN;
close WRITE;

Заранее большое спасибо!!![/QUOTE]<span id='postcolor'>
Госпожа Динара будет бить но слов из песни...
Так вот: телевизор КВН
По порядку:
123-все правильно, но это нужно помнить, а к этому куску скрипта никакого отношения не имеет.
1. cgi-lib.pl есть везде. Его конечно можно при инсталляции вырезать, но это есть плохо, так ка много служебных программ сервера юзают эту библиотеку. На всякий случай я положил сюда скрипт который рассказывает тебе о установленных модулях. perlinfo.pl
2. А теперь почему не работает...
Читай логи-там все дотупно-английским по бэкграунду. Если лень искать и читать error.log поставь перед
require 'cgi-lib.pl'; такую строку :
use CGI::Carp qw(fatalsToBrowser);
И после этого бедет выводится в окно в честь чего произошла ошибка. Потом, когда все работает, можеш убрать, чтобы лишним модулем не загружать память.
Далее.
Вот это кусок возможно вообще ни к чему не привязан
(то есть скрипт ожидает данные а они не передаются.)
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата </td></tr><tr><td id="QUOTE">
&amp;ReadParse(*field);
$textfield = $field{'textarea'} ;
$submit = $field{'submit'} ;
[/QUOTE]<span id='postcolor'>
Теперь вот это
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата </td></tr><tr><td id="QUOTE">print &quot;Content-Type: text/html\n\n&quot;;
print WRITE &quot;$textfield\n&quot;;
print WRITE, &quot;$submit\n&quot;;[/QUOTE]<span id='postcolor'>
Строка print &quot;Content-Type: text/html\n\n&quot;; здесь явно лишняя.
Если хочешь- заверши скрипт такими строками
print &quot;Content-Type: text/html\n\n&quot;;
print &quot;Все в порядке, скрипт выполнен&quot;;

А вообще, напиши что ты хочеш и я тебе напишу скрипт. Безваздмездно
Удачи.
Ответить с цитированием