Forum Webscript.Ru

Программирование => Perl => Тема начата: D1METR0L от 10 Декабря 2001, 20:23:58

Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: D1METR0L от 10 Декабря 2001, 20:23:58
У меня есть хороший скрипт комментариев,но вот установил его,а в скрипте ошибка,неможете сказать где?? :rolleyes:

ВОТ СКРИПТ.



#!/usr/bin/perl
#########################################################
# (c) 2001 by Developers.com.ua
#########################################################
use CGI;
use Fcntl \':flock\';

$query = new CGI;

$file_url="";
#
# Change variable file_local he must contain local path to your www directory
#
$file_local="/public_html/";
$file_db="comments/comments.db";
$template="comments/comments.tmpl";
$editor="comments/editor.tmpl";

$lt="<";
$gt=">";
$br="
";
$start="";

$nick = $query->param(\'NICK\');
$text = $query->param(\'COMMENT\');
$id = $query->param(\'ID\');
$cmd = $query->param(\'cmd\');

$id=~s/[^\\d]//ge;
$nick=~s/[^A-Z,a-z,\\d,-,_,.]//ge;
$text=~s/\\x3C/$lt/ge;
$text=~s/\\x3E/$gt/ge;
$text=~s/\\x0D//ge;
$text=~s/\\x0A/$br/ge;
$text=~s/[\\x00-\\x1F]//ge;

if($cmd eq "edit")
{ print "Content-type: text/html;charset=windows-1251\\n\\n";
  $a=get_template("$editor");
  $a=~s/_ID_/$id/ge;
  print "$a";
  return;
}


open(FILE,"< $file_db") || die "cannt open file!";
$file="";
while()
{ ($iid,$ffile) = split("\\t",$_);
  $iid=~s/[^\\d]//ge;
  if($iid eq $id) { $file=$ffile;}
};
close(FILE);
$file=~s/\\0x0-\\x1F//ge;
if(length($file)==0) { die "Incorrect id";}

$file_url="$file_url$file";
$file_local="$file_local$file";

($sec,$min,$hour,$day,$month,$year) = localtime(time());
$year=$year+1900;
$month++;
if(length("$month")==1) { $month="0$month";}
if(length("$day")==1) { $day="0$day";}
$mdate="$day/$month/$year";

$news=get_template($template);
$news=~s/_NICK_/$nick/ge;
$news=~s/_DATE_/$mdate/ge;
$news=~s/_COMMENT_/$text/ge;

open(FILE,"+< $file_local") || die "cannt open file!";
flock(FILE, 2);
@tmpl=;
$SIZE=$#tmpl;

seek(FILE,0,SEEK_SET);
truncate(FILE, 0);
$a="";

for($i=0;$i<=$SIZE;$i++)
{ $b=$tmpl[$i];
  $_=$b;
  if (/$start/)
  {  $b="$news$b\\n";
  }
  $a="$a$b";
}
print FILE "$a";
flock(FILE, 8);
close(FILE);

print "Location: $file_url\\n\\n";
return;

sub get_template()
{ my(@body,$a);
  open(FILE,"< $_[0]") || die "cannt open file!";
  @body=;
  close(FILE);
  $a=join("",@body);
  return($a);
}
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: NeoNox от 11 Декабря 2001, 00:10:29
у меня пишет
cannt open file! at ...CGI-BIN/TEST.PL line 52.
А вообще совет. Что бы получать осмысленные сообщения об ошибках пиши в начале скрипта (после usr/bin/perl)
use CGI::Carp qw(fatalsToBrowser);
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: Oak от 11 Декабря 2001, 02:22:56
Цитировать
$file_local="/public_html/";

А это еще что такое???!!!! :)))))   public_html всегда лежит у
пользователя в $HOME!!!!
  ААааа... может FTP за Chroot-или.

        Вообщем или поставь там "/home/<твой логин>/public_html"
 Если не заработает - спроси у тамошних админов, что на самом деле
 туда записать надо.
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: lodevar от 11 Декабря 2001, 09:33:16
Совет: Лучше сразу рассказать миру какую ошибку пишет.
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: ЖеньКа от 11 Декабря 2001, 09:36:20
А мне кажется что в путях как раз ошибка.. Судя по тому тчо он не может файл найти куда писать - значит это его и смущает....
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: D1METR0L от 11 Декабря 2001, 20:17:26
неработает,все перепробывал.Админам написал сайта wallst.ru,они сказали что не работает.
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: NeoNox от 12 Декабря 2001, 11:13:21
Цитировать
неработает,все перепробывал.

Что не работает? Где ошибку выдает?
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: D1METR0L от 12 Декабря 2001, 12:33:04
Выдает Error
какой-то путь /x4 что ли.
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: NeoNox от 12 Декабря 2001, 12:54:43
Цитировать
Выдает Error
какой-то путь /x4 что ли.

Нет, так ты ничего не найдешь!
Весь Error и все пути в студию!
Название: :-)
Отправлено: Oak от 12 Декабря 2001, 16:50:56
"Доктор ... меня игнорируют". ...

Я же выделил строку, где неверно путь прописан.
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: Боря Елкин от 13 Декабря 2001, 00:53:20
Нужно сделать так.
в cgi-bin создать каталог comments

вместо
$file_local="/public_html/";
написать
$file_local=$ENV{DOCUMENT_ROOT}."/cgi-bin/";
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: D1METR0L от 15 Декабря 2001, 14:52:10
Всеровно неработает..
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: NeoNox от 15 Декабря 2001, 15:03:24
Цитировать
Всеровно неработает..

Вместе с сообщениями кидай и строку где с ошибкой вылетает.
А то, по двум словам не ясно что именно не работает...
Название: ПОМОГИТЕ СО СКРИПТОМ
Отправлено: D1METR0L от 16 Декабря 2001, 22:51:30
Пишет Sharaware error.
Обратитесь к админу сайта и сообщите об ошибке.А какой не сказанно.