Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Установка Модулей (http://forum.mynuke.ru/forumdisplay.php?f=10)
-   -   при установке модуля администратору закрыт доступ к управлению (http://forum.mynuke.ru/showthread.php?t=57)

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/
Найти:
PHP код:
 if (!eregi("admin.php"$_SERVER['PHP_SELF'])) { die ("Access Denied"); }
if ((
$radminsuper==1) OR ($radmindownload==1)) { 

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


Найти:
PHP код:
 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'] == || $auth_user == 1) { 

Заменить на:
PHP код:
 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'] == || $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 в принцепе правильно но заменить надо только строку
PHP код:
 if (!eregi("admin.php"$_SERVER['PHP_SELF'])) { die ("Access Denied"); } 



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

brux 17.03.2005 20:25

Ну, Soniks ты даешь блин!!!

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

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

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

brux 17.03.2005 21:36

Эйфория сменилась неким разочарованием!

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

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

You can't access this file directly...


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


Часовой пояс GMT +4, время: 03:40.

Copyright © 2005 by Soniks