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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при выполнении скрипта, Север выдаёт ошибку 
:(
    Опции темы
Kuznec
Дата 13.4.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В поиске



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

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



Я не прогрммировал на perl. Мне нужно внедрить платёжную систему E-Gold на свой сайт. С официального сайта компании взял perl-скрипт для выполнения выплат. Когда попробовал загрузить на сервер и выполнить, сервер выдаёт ошибку:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.



--------------------------------------------------------------------------------

Apache/1.3.33 Server at forexguide.ru Port 80


В логе файла ошибок пишет следующее:

[Fri Apr  6 00:32:13 2007] [error] [client 82.151.112.33] Premature end of script headers: /pub/home/forexguide/cgi-bin/payment.cgi
[Fri Apr  6 00:33:15 2007] [error] [client 82.151.112.33] Premature end of script headers: /pub/home/forexguide/cgi-bin/payment.pl


Я уже и расширения менял.

Исходник скрипта вот:

#!/usr/bin/perl
#
# perl script to preview a spend
# from maintenance release e-gold system
# version 1.0
# free for use, modification, redistribution
#
#
#Disclaimer
#The Author [e-gold Ltd.] accepts no
#responsibility for damages to persons, property or data incurred
#through the use of this script(s). To the maximum extent permitted
#by law, in no event shall the Author [e-gold Ltd.] be
#liable for any damages whatsoever (including, without limitation,
#damages for loss of business profits, business interruption, loss of
#business information, or other pecuniary loss) arising out of the use
#or inability to use this software, even if the Author has been advised
#of the possibility of such damages.
#
#This product is supplied as-is, with no warranties express or implied.
#Use this software at your own risk.
#
if ($#ARGV < 4) {
   &command_help;
}
# pick up account number we will be spending from...
$accountfrom = $ARGV[0];
shift;
# pick up account number we will be spending to...
$accountto = $ARGV[0];
shift;
# pick up amount
$amount = $ARGV[0];
shift;
# pick up units
$units = uc($ARGV[0]);
shift;
$unitsok = 0;
if(index($units,"USD") == 0){
       $units = 1;
       $unitsok = 1;
}
if(index($units,"OZ") == 0){
       $units = 9999;
       $unitsok = 1;
}
if(index($units,"G") == 0){
       $units = 8888;
       $unitsok = 1;
}
if(index($units,"CAD") == 0){
       $units = 2;
       $unitsok = 1;
}
if(index($units,"FFR") == 0){
       $units = 33;
       $unitsok = 1;
}
if(index($units,"CHF") == 0){
       $units = 41;
       $unitsok = 1;
}
if(index($units,"GBP") == 0){
       $units = 44;
       $unitsok = 1;
}
if(index($units,"DEM") == 0){
       $units = 49;
       $unitsok = 1;
}
if(index($units,"AUD") == 0){
       $units = 61;
       $unitsok = 1;
}
if(index($units,"JPY") == 0){
       $units = 81;
       $unitsok = 1;
}
if($unitsok == 0) {
       die "$units is Invalid, choose oz, g, usd, gbp, aud, jpy, dem, cad, ffr, chr";
}
# pick up e-metal type
$metal = uc($ARGV[0]);
shift;
$metalok = 0;
if(index($metal,"GOLD") == 0){
       $metal = "Gold";
       $metalok = 1;
}
if(index($metal,"SILVER") == 0){
       $metal = "Silver";
       $metalok = 1;
}
if(index($metal,"PLATINUM") == 0){
       $metal = "Platinum";
       $metalok = 1;
}
if(index($metal,"PALLADIUM") == 0){
       $metal = "Palladium";
       $metalok = 1;
}
if($metalok == 0) {
       die "$metal is invalid, choose gold, silver, platinum, or palladium";
}
sub command_help
{
   print "Usage: $0 from to amount units metal\n";
   print "  units can be one of oz, g, usd, aud, cad, dem, gbp, jpy, chf, ffr\n";
   print "  metal can be one of gold, silver, platinum, palladium\n";
   print "\nexample:\n";
   print "$0 101574 100998 1 usd gold\n";
   print "to preview a spend of 1 US dollar equivalent of gold from\n";
   print " account 101574 to account 100998\n";
   exit 1;
}
# prompt user for password
print "\nPassphrase for $accountfrom?";
if ( system('stty -echo') != 0) {
       die "Error setting terminal to not echo\n";
}
$pp = <STDIN>;
chop($pp);
system('stty echo');
print "\n";


#build up the arguments for the preview command
$curlargs = "Payee_Account=$accountto";
$curlargs .= "&Amount=$amount";
$curlargs .= "&PAY_IN=$units";
$curlargs .= "&WORTH_OF=$metal";
$curlargs .= "&Memo=automatic spend";
$curlargs .= "&PassPhrase=$pp";
$curlargs .= "&AccountID=$accountfrom";
# print "\n$curlargs\n";
$sysstring = "curl -s -d ";
$sysstring .= '"';
$sysstring .= $curlargs;
$sysstring .= '"';
$sysstring .= " https://www.e-gold.com/acct/verify.asp";
#print $sysstring;
# read everything into one buffer
undef $/;
open(foo, "$sysstring|");
while(<foo>){
  # pull out the hidden fields...the pattern starts with "hidden name=" and
  # ends with ">"
  while( /hidden name=(.*?)>/gs ) {
       # see if there was some kind of error
       if(index($1, "ERROR") == 0) {
              $errstring = $1;
              $errstring =~ ( /value="(.*)"/ );
              print "Error on preview is: $1\n";
              exit -1;
       }

       # print out the information we care about from the preview
       if(index($1, "ACTUAL_PAYMENT_OUNCES") == 0) {
              $ozstring = $1;
              $ozstring =~ ( /value="(.*)"/ );
              print "Successful Preview.\n";
              print "Weight of this payment would be: $1 oz.\n";
       }
  }
}
close foo;
# all done
print "\n";


Я даже точку в конце пробовал ставить.

Подскажите, что нужно исправить, от чего такая ошибка. Скрипт же должен быть рабочим, или это зависет от хостинга?

Заранее благодарен за помощь.
PM MAIL WWW   Вверх
everyone
Дата 13.4.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Это консольное, а не серверное приложение.
Запускается из командной строки:
./<scriptname>.pl или perl <scriptname>.pl

Я не думаю, что это поможет вам внедрить E-Gold в ваш сайт.
--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
Kuznec
Дата 13.4.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В поиске



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

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



Т.е. получается, что его нельзя вообще запустить на веб-сервере. А если через cron?
PM MAIL WWW   Вверх
everyone
Дата 13.4.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не знаю, причём здесь Cron. Чтобы интегрировать это в сайт, именно интегрировать, можно было бы переписать это в модуль.
Если нужно, чтобы приложение работало с сервера, можно сделать CGI интерфейс. Но опять же проблема программирования, если вы с этим совсем не знакомы.

Это сообщение отредактировал(а) everyone - 13.4.2007, 17:36
--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
Kuznec
Дата 13.4.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В поиске



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

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



Да вот и вся проблема, я начал было изучать perl, но перешёл на PHP, его возможности меня устраивали до сих пор, пока не столкнулся с проблеммой оплаты. А perl теперь не прочь изучить, но это время. А может, everyone, Вы мне с этим сможете помочь? Конечно, не бесплатно, но может я чем-то смогу помочь: или деньгами или идеями, можно рассмотреть любые варианты.
PM MAIL WWW   Вверх
everyone
Дата 13.4.2007, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Давайте в приват, объём работы на глаз трудно оценить, но я пока не вижу, что за это можно взять действительно деньги)
--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
everyone
Дата 15.4.2007, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



egoldpay.zip

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  egoldpay.zip 2,87 Kb
--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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