Вход

View Full Version : при установке модуля администратору закрыт доступ к управлению


brux
16.03.2005, 19:19
При установке модуля http://www.x-prices.com/downloads/AserShop20.zip администратору закрывается доступ к управлению модулями.

Решить задачу в лоб не удалось (пытался закоментировать строки if (!eregi("modules.php", $_SERVER['PHP_SELF'])) {
die ("You can't access this file directly...");
} и аналогичные в файлах)

Может кто то плавал и знает как трабл побороть?

Soniks
16.03.2005, 19:35
brux а какая нюка какой патч?

надо произвести замену следующего кода в файлах папки modules/Aser_Shop/admin/
Найти:
if (!eregi("admin.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }
if (($radminsuper==1) OR ($radmindownload==1)) {

заменить на:
if ( !defined('ADMIN_FILE') )
{
die("Illegal File Access");
}
global $admin_file;
if ($radminsuper==1) {


Найти:
if (!eregi("admin.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }
global $prefix, $db;
$aid = substr("$aid", 0,25);
$row = $db->sql_fetchrow($db->sql_query("SELECT title, admins FROM ".$prefix."_modules WHERE title='Asers_Shop'"));
$row2 = $db->sql_fetchrow($db->sql_query("SELECT name, radminsuper FROM ".$prefix."_authors WHERE aid='$aid'"));
$admins = explode(",", $row['admins']);
$auth_user = 0;
for ($i=0; $i < sizeof($admins); $i++) {
if ($row2['name'] == "$admins[$i]" AND $row['admins'] != "") {
$auth_user = 1;
}
}
if ($row2['radminsuper'] == 1 || $auth_user == 1) {

Заменить на:
if ( !defined('ADMIN_FILE') )
{
die("Illegal File Access");
}
global $prefix, $db, $admin_file;
$aid = substr("$aid", 0,25);
$row = $db->sql_fetchrow($db->sql_query("SELECT title, admins FROM ".$prefix."_modules WHERE title='Asers_Shop'"));
$row2 = $db->sql_fetchrow($db->sql_query("SELECT name, radminsuper FROM ".$prefix."_authors WHERE aid='$aid'"));
$admins = explode(",", $row['admins']);
$auth_user = 0;
for ($i=0; $i < sizeof($admins); $i++) {
if ($row2['name'] == "$admins[$i]" AND $row['admins'] != "") {
$auth_user = 1;
}
}
if ($row2['radminsuper'] == 1) {
$radminsuper = 1;
}
if ($row2['radminsuper'] == 1 || $auth_user == 1) {


Это при условии что, нюка 7.6 + патч 2.9
иначе заменяй на код схожих файлов из папки admin/

brux
16.03.2005, 21:14
Сейчас мучаю нюку 7.6 + патч 2.9

Сделал как рекомендовано.

Система ожила, т.е раздел управления модулями стал доступен и модуль Aser_Shop появился в разделе, однако при обращении к этому модулю сермер возвращает:

Access Denied

Может собака залегла также в файле case.php?

Эта зараза не пускает и другим модулям.

Soniks
16.03.2005, 22:05
brux надо переделать так все файлы этого модуля руководствуясь этим:
http://forum.mynuke.ru/showpost.php?p=329&postcount=2
но в обратном направлении, там переход от нового к старому, а тебе надо наоборот

brux
17.03.2005, 05:40
Че то я не врублюсь - несколько раз проштудировал Ваши рекомендации
http://forum.mynuke.ru/showpost.php?p=329&postcount=2, и мне думается что там где-то переход потерян (с позиции чайника).

Поэтому прошу спасательный круг, чтоб не утонуть.

Soniks
17.03.2005, 14:10
brux а что именно не понятно? именно там дано обьяснение как перевести модуль дл версии нюки 7.6+ патч2.9 к более старым версиям нюки
а в вашем случаи надо проделать наоборот

brux
17.03.2005, 15:05
У меня нюка 7.6+ патч2.9

В ваших рекомендациях мне непонятно начиная отсюда:

.......
на свои. А именно какие?, скажем редактируете фаил admin/modules/ShoutBlock.php.​
​​​​Открываете любой фаил, нахожящийся в этой директории нюки
(admin/modules/) и смотрите что там идет в самом начале, например вот
это:

PHP код:
if (!eregi("admin.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }

и заменяете в своем файле ShoutBlock.php вот это:

PHP код:
if ( !defined('ADMIN_FILE') )
{
die("Illegal File Access");
}

на выше написаное.


здесь какой то цикл.

brux
17.03.2005, 15:36
В директории modules/Aser_Shop/admin/

осьался неотредактированным только один файл case.php

которому нет оналогов в других модулях

А строки следующие:

PHP код:
if (!eregi("admin.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }
$module_name = "Asers_Shop";
include_once("modules/$module_name/admin/language/lang-".$currentlang.".php");

Так мне ее заменить на:

PHP код:
if ( !defined('ADMIN_FILE') )
{
die("Illegal File Access");
}

Soniks
17.03.2005, 16:09
brux в принцепе правильно но заменить надо только строку
if (!eregi("admin.php", $_SERVER['PHP_SELF'])) { die ("Access Denied"); }



Я выложил рабочий модуль для PHP-NUKE 7.6 + pached 2.9:
http://mynuke.ru/modules.php?name=Downloads&op=getit&lid=40

brux
17.03.2005, 20:25
Ну, Soniks ты даешь блин!!!

Ведь все работает с пол тычка!

И главное круто!

Пасибо Сусанин вывел нас!

brux
17.03.2005, 21:36
Эйфория сменилась неким разочарованием!

Все было прекрасно, когда просматривал из под Админа,

но когда зашел на сайт рядовым юзером при обращении к магазину получил:

You can't access this file directly...


Перезалил базу и все стало пучком!!!