Страница 1 из 1
perl: ошибки
Добавлено: 2010-01-07 2:04:42
icb
Раньше сайт работал нормально, после переноса на другой сервер перестал.
В логах пишет
Код: Выделить всё
[Wed Jan 06 22:49:34 2010] [error] [client 95.26.147.9] Useless use of a constant in void context at ../lib/login.cgi line 113.
[Wed Jan 06 22:49:34 2010] [error] [client 95.26.147.9] syntax error at ../lib/login.cgi line 551, near "( err"
Строки 113, 551
Код: Выделить всё
if($l eq '' or $p eq ''){ return err('Пустое имя пользователя или пароль.'); }
if($sid eq '' or $sid == 0){ return( err("Вы не вошли в систему.") ); }
Вроде обычный код, да и работал же.
Может надо какие модули перла доставить?
Сейчас стоит такое
p5-DBI-1.60.9 The perl5 Database Interface. Required for DBD::* modules
p5-Storable-2.21 Persistency for perl data structures
p5-gettext-1.05_2 Message handling functions
perl-5.8.9_3 Practical Extraction and Report Language
Re: perl: ошибки
Добавлено: 2010-01-07 2:20:03
ProFTP
что такое err?
это какая-то фнцкция может быть которая не подключенная...
вообще надо смотреть код, покажи или дай доступ...
Re: perl: ошибки
Добавлено: 2010-01-07 2:47:00
icb
что такое err?
Это объявлено ниже в файле login.cgi
Код: Выделить всё
sub err
{
$errstr = shift;
return (undef,undef);
}
вообще надо смотреть код
У меня нет к нему доступа
Да и говорят: "все же работало на старом сервере".
Re: perl: ошибки
Добавлено: 2010-01-07 2:54:20
ProFTP
можно попробовать так:
Код: Выделить всё
if($sid eq '' or $sid == 0){
return err("Вы не вошли в систему") ;
}
а где 551 строка?
Re: perl: ошибки
Добавлено: 2010-01-07 3:24:46
icb
можно попробовать так:
Ошибка осталась прежней, только на следующей строке.
а где 551 строка?
Не совсем корректно объеденил строки
113
Код: Выделить всё
if($l eq '' or $p eq ''){ return err('Пустое имя пользователя или пароль.'); }
551
Код: Выделить всё
if($sid eq '' or $sid == 0){ return( err("Вы не вошли в систему.") ); }
Везде вызывается err, но почему ошибки разные?
Re: perl: ошибки
Добавлено: 2010-01-07 3:28:05
ProFTP
2 строки по разному написаны
я не знаю что перед ними и что после....
попробуй так:
Код: Выделить всё
if($sid eq '' or $sid == 0) { die "Вы не вошли в систему"; }
Re: perl: ошибки
Добавлено: 2010-01-07 3:30:23
icb
Ошибка пропала (551 строка).
Re: perl: ошибки
Добавлено: 2010-01-07 3:30:52
ProFTP
возвращается не определенное значение , это просто придуприждение
Re: perl: ошибки
Добавлено: 2010-01-07 3:33:59
icb
А почему вообще появляется эта ошибка?
Чем не нравится err?
Re: perl: ошибки
Добавлено: 2010-01-07 3:37:30
ProFTP
точно сказать не могу....
надо попробовать
Re: perl: ошибки
Добавлено: 2010-01-07 4:45:50
icb
Просто править код чужих сайтов особо не получится
Да и ошибка скорее всего связана действительно с переездом.
Re: perl: ошибки
Добавлено: 2010-01-07 19:48:30
thefree
Код: Выделить всё
sub err
{
$errstr = shift;
return (undef,undef);
}
Это точно полностью ВСЯ функция?
Правильнее будет
Код: Выделить всё
sub err()
{
$errstr = @_;
return (undef,undef);
}
if(!defined($l) or !defined($p)) { return err("Пустое имя пользователя или пароль."); }
if(!defined($sid) or $sid eq 0){ return err("Вы не вошли в систему."); }
Версия perl изменилась у Вас.
Re: perl: ошибки
Добавлено: 2010-01-07 21:40:19
icb
Это точно полностью ВСЯ функция?
Да.
Версия perl изменилась у Вас.
Да.
Можно заставить старые скрипты работать без переделки?
Re: perl: ошибки
Добавлено: 2010-01-08 2:51:57
icb
Версия perl поменялась с 5.8.8 на 5.8.9 - не должно быть так критично для скриптов.
Re: perl: ошибки
Добавлено: 2010-01-08 16:54:34
thefree
icb писал(а):Версия perl поменялась с 5.8.8 на 5.8.9 - не должно быть так критично для скриптов.
не должно быть, но еще есть модули ... и бла бла бла ... То что я вам порекомендовал помогло?
Re: perl: ошибки
Добавлено: 2010-01-08 19:12:19
icb
То что я вам порекомендовал помогло?
Да, хватило убрать скобки у return
Но вылезла куча других ошибок
Код: Выделить всё
print() on closed filehandle MEM at
readline() on closed filehandle MEM at