Перейти к содержимому



  • Закрытая тема Тема закрыта

Помогите с админкой на сайте (MyADmin)

#1 kocmocivan

kocmocivan
  • Пользователь
  • 99 сообщений
  • Репутация: 0
0

Отправлено 11 Август 2009 - 14:28

Собственно проблема в следующем:
Генеральный в свое время решил сам изменить доступ к админке (говорит что менял только в коде пароли к доступу в MyADmin...)
Но вот после того в админку было можно было зайти но нельзя было что либо там делать - ошибка 400...
Теперь добавление новостей товаров и т.д. идет только напрямую через MyADmin - это геморой ;)

ПОвозившись немного у меня теперь после ввода лога и паса в админку теперь ошибка - 500

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, devnull@hosting.ru 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.37 Server at www.decotec.ru Port 80


Что это такое и как это исправить я уже не понимаю... много чего пересмотрел и не понимаю...

Ниже приведу структура папок самого сайта (мало ли вдруг нужно...)
[bin]
[cgi-bin]
[log]
[www]

Собственно в папке cgi-bin есть папка admin , а там есть один из, как я понимаю, самых основных файлов - index.pl

#!/usr/bin/perl
use lib "../lib";
use SysFunc;
use Templates;
use DBI;
use data;

print "Content-type: text/html;charset=windows-1251\n\n";
my $globals=&SysFunc::get_globals();
if(!$::globals->{id}){
Templates::show_page("../../www/admin.html",);
return 1;
}
%data=&data::get();

$data=Templates::add_translate($data,"cat_cr","<font color=blue>");
$data=Templates::add_translate($data,"gb_cr","<font color=blue>");
$data=Templates::add_translate($data,"passwd_cr","<font color=blue>");
$data=Templates::add_translate($data,"error","$data{error}");
Templates::show_page("../../www/html/admin.html",$data);
&SysFunc::add_globals;
exit(0);


собственно код файла admin.html из папки www

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body bgcolor=#eeeeee>
<!--#error--><!--#-->
<FORM action="/cgi-bin/admin/login/index.pl" method=POST>
<center>
<table style="height:120px;width: 200px;background:#7d7d7d;color:#ffffff">
<tr><td>Логин:</td><td align=right><input size=12 type=text name=login style="border: 1px solid"></td></tr>
<tr><td>Пароль:</td><td align=right><input size=12 type=password name=passwd style="border: 1px solid"></td></tr>
<tr><td colspan=2 align=center><input type=submit style="border: 2px solid" value="Вот так!"></td></tr>
</table>
</center>
</FORM>
</body>


И код из файла admin.html из папкм www/html
<head>
<meta http-equiv="Content-Type" content="text/html; windows-1251">
<link rel=stylesheet type=text/css href="styles.css">
</head>
<body>
<center><b><!--{error--><!--{--></b></center>
<table width=98% height=100% border=1 bgcolor="#d0d0d0">
<tr>
<td valign=top>
<table style="width: 120px; height: 300px; border: 1px solid #d0d0d0">
<tr><td width=150 height=10><a href=""><< Вернуться на сайт</a></td></tr>
<tr><td width=150 height=10>&nbsp;</td></tr>
<tr><td width=150 height=10><a href="/cgi-bin/admin/catalog/index.pl?a=3">Каталог</a></td></tr>
<tr><td width=150 height=10><a href="/cgi-bin/admin/news/index.pl">Новости</a></td></tr>
<tr><td width=150 height=10><a href="/cgi-bin/admin/tbp/index.pl">Лучший Товар</a></td></tr>
<tr><td width=150 height=10><a href="/cgi-bin/admin/advice/index.pl">Совет Дня</a></td></tr>
<tr><td width=150 height=10><a href="/cgi-bin/admin/passwd/index.pl">Изменить пароль</a></td></tr>
<tr><td width=150 height=10><a href="/cgi-bin/admin/login/index.pl?action=logout">Выход</a></td></tr>
<tr><td width=150 height=100%>&nbsp;</td></tr>
</table>
</td>
<td valign=top bgcolor="#f0f0f0" width=100%>
<div style="width:100%"><!--{adminfield1--><!--{-->
</div>
<div style="width:100%"><!--{adminfield2--><!--{-->
</div>
<!--{edit}-->
<!--{main--><!--main}-->
<!--{edit1}-->
</td></tr></table>
</body>


Как видно из всех кодов для входа в админскую зону используется файл index.pl из cgi-bin/admin/login/ , а вот его код
#!/usr/bin/perl
use lib "../../lib";
use SysFunc;
use Templates;
use DBI;
use data;

my $globals=&SysFunc::get_globals();
%data=&data::get();
if($data{action} eq "logout")
{
&SysFunc::logout();
print qq~<script language=javascript>location.href="/";</script>~;
# return 1;
}
if(&SysFunc::login($data{login},$data{passwd}))
{
print qq~<script language=javascript>location.href="/cgi-bin/admin/index.pl";</script>~;
}
else
{
print "Content-type: text/html;charset=windows-1251\n\n";
$data=Templates::add_translate($data,"error","<font color=red>Ne pravilnii password</font>");
Templates::show_page("../../../admin.html",$data);
}
&SysFunc::add_globals;
exit(0);


ГДЕ ТУТ НЕПРАВИЛЬНО????
ПОМОГИТЕ ПЛИЗЗЗЗ!!!
Сам не могу разобраться!

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Август 2009 - 13:57

kocmocivan, /cgi-bin/admin/login/index.pl
файл в студию
  • 0

#3 kocmocivan

kocmocivan
    Topic Starter
  • Пользователь
  • 99 сообщений
  • Репутация: 0

Отправлено 13 Август 2009 - 08:23

ZiTosS самый последний код в теме - /cgi-bin/admin/login/index.pl
Или нужен именно файл?
Но повторюсь. вот его код...

#!/usr/bin/perl
use lib "../../lib";
use SysFunc;
use Templates;
use DBI;
use data;

my $globals=&SysFunc::get_globals();
%data=&data::get();
if($data{action} eq "logout")
{
	&SysFunc::logout();
	print qq~<script language=javascript>location.href="/";</script>~;
#	return 1;
}
if(&SysFunc::login($data{login},$data{passwd}))
{
	print qq~<script language=javascript>location.href="/cgi-bin/admin/index.pl";</script>~;
}
else
{
	print "Content-type: text/html;charset=windows-1251\n\n";
	$data=Templates::add_translate($data,"error","<font color=red>Ne pravilnii password</font>");
	Templates::show_page("../../../admin.html",$data);
}
&SysFunc::add_globals;
exit(0);

  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 13 Август 2009 - 23:56

kocmocivan, дма какого-то представления код не внес.
Вы говорите

Но вот после того в админку было можно было зайти но нельзя было что либо там делать - ошибка 400...
Теперь добавление новостей товаров и т.д. идет только напрямую через MyADmin - это геморой

Затем

ПОвозившись немного у меня теперь после ввода лога и паса в админку теперь ошибка - 500

Что вы сделали? Ошибка 500, это ошибка сервера, стоит посмотреть в логах Apache. Там более подробно разъяснены причины.

Важно показать, в каких строках что меняли.
  • 0

#5 Serdick

Serdick
  • Пользователь
  • 10 сообщений
  • Репутация: 0

Отправлено 11 Сентябрь 2009 - 10:56

kocmocivan, дма какого-то представления код не внес.
Вы говорите

Затем

Что вы сделали? Ошибка 500, это ошибка сервера, стоит посмотреть в логах Apache. Там более подробно разъяснены причины.

Важно показать, в каких строках что меняли.

жесть
  • 0

#6 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 04 Ноябрь 2009 - 00:00

ошибка 500 "Internal Server Error"

Ошибка 500 "Internal Server Error" возникает в случае невозможности запуска скрипта, который вы разместили на сервере, в случае ошибок в скрипте, а также в случае когда вы поместили неправильную инструкцию в файл .htaccess. Этот список причин возникновения ошибки 500 не конечный, есть еще масса причин, по которым может возникнуть ошибка 500. Однако, упомянутые три случая встречаются наиболее часто.

Рассмотрим сначала случай, когда вы поместили некорректную инструкцию в файл .htaccess. Если вы ошиблись в написании названия нужной директивы или параметров к ней, в файле error.log вы найдете примерно такую ошибку:

[Wed Apr 14 17:01:38 2004] [alert] [client 217.16.16.16] /home/uXXXXX/aaa.ru/www/.htaccess: Invalid command 'DrectoryIndex', perhaps mis-spelled or defined by a module not included in the server configuration

Веб-сервер укажет вам какую конкретно директиву он посчитал ошибочной - ее нужно будет исправить. В данном случае веб-сервер сообщил что директивы DrectoryIndex он не знает. И действительно - нет директивы DrectoryIndex, есть DirectoryIndex. Имеет место опечатка.

Если ошибка 500 возникает при обращении к скрипту на языке Perl, размещенному в каталоге cgi-bin, нужно проверить права доступа на этот скрипт. Права должны быть 755 (rwxrx-rx). Если это не так, нужно изменить права на 755 командой chmod 755 script.pl в unix shell или воспользоваться для этого FTP. Нужно отдельно отметить - права на скрипты должны быть установлены строго в 755.

Пожалуйста, проверьте правильный ли режим передачи файлов по FTP вы использовали при загрузке скрипта на наш сервер. Все скрипты, равно как и любые другие текстовые файлы, должны передаваться по FTP в текстовом (ASCII) режиме. Если же был использован двоичный (Binary) режим передачи файлов, скрипты наверняка работать не будут.

Если после проверки корректности установленных прав на файл скрипта ошибка не исчезла, нужно изучить последние записи в файле error.log - в него веб-сервер помещает все сообщения об ошибках. Так вы найдете строчку вида

[Fri Apr 9 15:05:31 2004] [error] [client 217.16.16.16] Premature end of script headers: /home/uXXXX/aaa.ru/cgi-bin/script.pl

Первое, что нужно сделать если вы получили такую ошибку, это проверить правильно ли скрипт выдает HTTP-заголовки. Каждый скрипт должен сначала печатать строку с указанием соответствующего Content-type и только потом непосредственно то, что увидит пользователь (например, HTML-код). Пример строки для выдачи заголовка обычного HTML-документа:

print "Content-type: text/html; charset=windows-1251\n\n";

Если и после выдачи правильных заголовков ошибка 500 не исчезла, нужно проверить корректность работы скрипта в целом. Для этого нужно получить доступ в unix shell и далее выполнить команду проверки синтаксиса:

> perl -cw script.pl script.pl syntax OK

Если скрипт написан с ошибками, нужно будет исправить ошибки, руководствуясь соответствующей диагностикой, а также проверить синтаксис скрипта снова.


  • 0


Оформление форума – IPBSkins.ru