Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модульная структура и include 
:(
    Опции темы
awers
  Дата 5.1.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Добрый вечер. 

При написании движка возникла необходимость ограничения выполнения модулями функций include, include_once, require, ...  Как это возможно осуществить? php4/5 

Благодарю, Аадм.
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 5.1.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(awers @  5.1.2007,  18:06 Найти цитируемый пост)
Как это возможно осуществить?

Написание программного кода.

Неужели сложно было в поиск вбить "модульность".

http://forum.vingrad.ru/topic-116824.html
http://forum.vingrad.ru/topic-49182.html
http://forum.vingrad.ru/topic-51073.html
http://forum.vingrad.ru/topic-15231.html

Что касается запрета. Необходимо знать КАК устроена ваша модульная структура.

Это сообщение отредактировал(а) Mal Hack - 6.1.2007, 14:40
PM ICQ   Вверх
awers
Дата 6.1.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Создание движка на этапе концепции, по этому саму концепцию модульности придется разрабатывать исходя от возможностей ограничения Include.

теперь объясню для чего все это надо:
в обычных движках все сделано так, что "ядро" вызывает нужный ему модуль и отдает управление ему. т.е. по сути ядру пофиг что дальше делает модуль. 
я же, хочу ограничить обособленности модулей относительно ядра. ресурсами должно заведовать именно ядро, соответственно решать имеет ли право модуль с текущим уровнем доступа получить доступ к тому или иному ресурсу движка. то-же касается SQL запросов, но с ними проще (EXPLAIN QUERY), берем используемые модулем в запросе таблицы и решаем, можно ли ему туда писать/читать или вообще знать о них. а вот в случае с файлами - сложнее. что-бы для обхождения защиты модуль не мог сделать нечто типа 
Код

include ('mysql.sql.class.inc');
$SQL = new SQL();
$SQL->query ...


Вот в чем вопрос. Надеюсь на этот раз правильно сформулировал.

Да, туда же всякие mkdir, dir() ... Надо ограничить хотя-бы частично, если возможно. 

Это сообщение отредактировал(а) awers - 6.1.2007, 15:58
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 6.1.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Решение в создании перегрузке операций, т.к. делаем верхнюю надстройку в ядре. Т.е.
В ядре делаем метод my_mkdir() и в нем в зависимости от условий разрешаем или нет выполнение функции, при этом в модуле делаем вызов my_mkdir.
PM ICQ   Вверх
awers
Дата 6.1.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



но дело в том что:
1) человек в модуле может просто написать include а не myinclude
2) при 
Код

function myinclude($file){
// если есть доступ
include $file;
}


то что мы инклюдим не получает пространство переменных и наоборот.
к примеру взять так:
0001.php
Код

$i = 1;
function load(){
include '0002.php';
}
echo $d;
load();


0002.php
Код

echo $i;
$d = 5;


Мы получим ошибки что $d,$i не существуют. Т.Е. при инклюде из функции, "адресное пространство" ограничивается пределами функции.

Добавлено @ 17:23 
"Для чего мне все это?" - спросите Вы?
все очень просто. после установки Пользователем экземпляра моего движка, у пользователя может возникнуть необходимость установки модулей, в том числе и сторонних! я в свою очередь хочу гарантировать (хотя бы частично) Пользователю безопасность. Даже если сторонний модуль содержит вредоносный код - он не должен суметь его выполнить. 
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 6.1.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



awers, от этого  ничего не спасет, т.к. php не предоставляет перегрузки операторов и функций.
PM ICQ   Вверх
awers
Дата 6.1.2007, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



Т.е. единственный выход - модифицировать и рекомпилить сам php?
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 6.1.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



awers, это изврат, на самом деле...
PM ICQ   Вверх
AntonioBanderaz
Дата 8.1.2007, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Могу посоветовать, может я и не прав, но вроде логичнее сделать некую абстракцию, тоесть создать базовый для всех модулей класс, например CMSModule
Код

class CMSModule {
      // Здесь определяются необходимые для всех модулей переменные etc
      // Например ссылки на абстракцию к БД
      
}

/* 
 * Каждый модуль например GBook, 
 * Должен находится, например в папке /modules/GBook/mod_include.php
 * И описываться классом GBook
 */

class GBook extends CMSModule {
      /*
       * Some shit code of module GBook
       */
}

/* 
 * Класс загрузки модулей очень простой
 */
class cfModuler {
    private $def_path       = 'modules';
    private $def_mod_index = 'mod_include.php';
    
    private $module2load   = '';
    private $loadedModule  = array();
    private $loadedModuleName  = array();
    
    private $MODULES_TABLE = 'cfmodules';
    
    public function loadModule($module_name) {
        $this->module2load = $module_name;
        $this->_loadModule();
    }
    
    private function _loadModule() {
                // Проверка, доступен ли модуль или админ его вырубил
        $GLOBALS['cfClasses']['DB']->query('SELECT A.`cfModulePath` FROM `'.$MODULES_TABLE.'` A WHERE A.`isActiveModule` = \'YES\' AND A.`cfModuleName` = \''.$this->module2load."'");
                // Если да, то
        if($GLOBALS['cfClasses']['DB']->numRows() == 1) {
            $file = $GLOBALS['cfClasses']['DB']->fetchAssoc();
            $file = $file['cfModulePath'].$this->def_mod_index;
            if(!in_array($this->module2load,$this->loadedModuleName)) {
                require_once($file);
                $this->loadedModule[$this->module2load] =& new $this->module2load();
                $this->loadedModuleName[] = $this->module2load;
                $GLOBALS['cfClasses']['Log']->actionLog('Успешно загружен модуль '.$this->module2load);
            } else {
                $GLOBALS['cfClasses']['Log']->errorLog('Попытка повторной загрузки модуля '.$this->module2load);
                throw new Exception('Попытка повторной загрузки модуля '.$this->module2load);
            }
        } else {
            $GLOBALS['cfClasses']['Log']->errorLog('Модуль '.$this->module2load.' не существует, либо закрыт доступ.');
            throw new Exception('Модуль '.$this->module2load.' не существует, либо закрыт доступ.');
        }
    }
}


Только необходимо определить загрузщик базовых классов твоей CMS
например 
файл configure.class.php
Код

<?php

require_once('db.class.inc.php');
require_once('mail.class.inc.php');
require_once('users.class.inc.php');
require_once('group.class.inc.php');
require_once('moduler.class.inc.php');
require_once('template.class.inc.php');
require_once('log.class.inc.php');

$GLOBALS['time'] = microtime();

class core {
    
    function core() {
        session_name();
        session_start();
        $this->configure();
        $this->get_work_class();
    }
    
    function configure() {
        if(!isset($_SESSION['USER']['LOGIN'])) $_SESSION['USER']['LOGINED'] = false;

        $_SESSION['conf']['db_host'] = 'localhost';
        $_SESSION['conf']['db_user'] = 'toxa_toxa';
        $_SESSION['conf']['db_password'] = "fetdiedm";
        $_SESSION['conf']['db_database'] = 'test';
        
        $_SESSION['conf']['ADMIN_MAIL'] = 'admin@localhost';
        $_SESSION['conf']['REAL_ADMIN_MAIL'] = 'admin@localhost';
        $_SESSION['conf']['SITEADDR'] = 'http://localhost/';
        $_SESSION['conf']['SITENAME'] = 'localhost';

        $_SESSION['conf']['DIR'] = '/usr/home/cfCMS/public_html/rus/profiles';
        
        $_SESSION['conf']['ADMIN_PATH'] = 'admin';
    }
    function get_work_class() {
        $GLOBALS['lib']['DB'] =& new cfDBAdapter($_SESSION['conf']['db_host'], 
                                       $_SESSION['conf']['db_user'], 
                                       $_SESSION['conf']['db_password'], 
                                       $_SESSION['conf']['db_database'], 
                                       false);
        $GLOBALS['cfClasses']['MAIL'] =& new cfMail();
        $GLOBALS['cfClasses']['MODULER'] =& new cfModuler ();
        $GLOBALS['cfClasses']['USER'] =& new cfUser();
        $GLOBALS['cfClasses']['GROUP'] =& new  cfGroup();
        $GLOBALS['cfClasses']['TEMPLATE'] =& new cfTemplate('./templates');
                $GLOBALS['cfClasses']['LOG'] =& new cfLog('../log', '.log', 555);
    }
}
$core = new core();
?>


Это сообщение отредактировал(а) AntonioBanderaz - 8.1.2007, 02:41


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Mal Hack
Дата 8.1.2007, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Об этом я писал выше. Автор имел ввиду, тот случай, когда программист делая модуль сам может написать include()
PM ICQ   Вверх
AntonioBanderaz
Дата 8.1.2007, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Смысл короче в том чтобы определить в базовом классе модуля, необходимые переменные и ссылки на классы системы.
Это по поводу видимости переменных

По поводу проверки доступа для инклуда в модуле, это ты хоть аб стену расшибись не сделаешь если чел знает полный путь к файлу... Но если у тебя в CMS чисто объектный подход, то в 5-ке есть одна шняжка которая может помочь.
В php5 есть такая штука, как __autoload это функция вызывается при создании экземпляра класса, объявление которого отсутствует.
тоесть ты можешь только положиться на честность проггеров, которые будут писать модули, сделай типо предписание, что файлы надо назвать определённым образом, класть в определённые папки, и не использовать include в модулях... Описание функции __autoload http://www.php.net/__autoload



--------------------
ГЫ... 
PM MAIL ICQ   Вверх
AztEK
Дата 8.1.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Есть ещё один вариант, если автору так хочется ограницить действия include (хотя это очень идеализированная архитектура). К примеру, при подключении модуля, ядро сохраняет его уровень доступа таким образом, чтобы никто кроме его самого (ядра) не мог его изменить, но все могли считать. Чтобы не возникало redeclair, наверное лучше использовать не константы а private-свойства объекта-ядра (это уже php5). А в каждом файле ресурсов перед выполнением стоял бы код, который проверяет текущий уровень доступа и соотвественно возможность исполнится.


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Sardar
Дата 8.1.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



awers, а не проще ли сделать глобальный PermissionManager::hasPermission("news.write.delete"), который проверяет привилегии текущего пользователя. В примере привилегия удалять новость (модуль "новости", тип "изменение", конкретное действие "удалить").

Ну а менеджер привилегий уже разбираеться с грантами типа news.write.* - доступно всё на запись, news.admin.* - доступны настройки модуля и т.д. ИМХО более здравая идея. Все привилегии должны обьявляться в системе, что бы из админовки ты мог видеть их/раздавать гранты.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 8.1.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(AntonioBanderaz @  8.1.2007,  03:15 Найти цитируемый пост)
По поводу проверки доступа для инклуда в модуле, это ты хоть аб стену расшибись не сделаешь если чел знает полный путь к файлу... 

Речь как раз и об этом.

AztEK, об этом писалось выше. Прочитай по внимательнее суть задачи. Модуль создается программистом, который легко может написать в нем include, что автор хочет запретить.


PM ICQ   Вверх
Eugene_Bond
Дата 9.1.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 3.9.2006

Репутация: 1
Всего: 4



Ну как полумера -- получать список http://php.net/get_included_files перед включением модуля и сравнивать со списком полученным после включения. Если добавилось лишнее -- бан. Это не спасает от первого вызова, не спасает от выхода из модуля без возврата в контроллер (хотя тут тоже можно попробовать поймать такие модули).

Равно, как и запрет инклюдов чтобы избежать подобного кода:
Код

include ('mysql.sql.class.inc');
$SQL = new SQL();
$SQL->query ...

не спасет от аналога без инклюда типа:
Код

class SQL {
..
}
$SQL = new SQL();
$SQL->query ...

PM MAIL   Вверх
AztEK
Дата 9.1.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Цитата(Mal Hack @ 8.1.2007,  18:11)
Цитата(AntonioBanderaz @  8.1.2007,  03:15 Найти цитируемый пост)
По поводу проверки доступа для инклуда в модуле, это ты хоть аб стену расшибись не сделаешь если чел знает полный путь к файлу... 

Речь как раз и об этом.

AztEK, об этом писалось выше. Прочитай по внимательнее суть задачи. Модуль создается программистом, который легко может написать в нем include, что автор хочет запретить.

да я вроде всё правильно понимаю... по моему способу, программист формально имеет доступ к ф-ции include() без ограничений, но файлы ресурсов подключить не сможет - привелегий не хватит. Sardar об этом же написал, только в более грамотной форме.


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
AntonioBanderaz
Дата 9.1.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 18



Цитата(AztEK @  9.1.2007,  15:26 Найти цитируемый пост)
да я вроде всё правильно понимаю... по моему способу, программист формально имеет доступ к ф-ции include() без ограничений, но файлы ресурсов подключить не сможет - привелегий не хватит. Sardar об этом же написал, только в более грамотной форме. 

Как не крути сможет.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
AztEK
Дата 9.1.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



то есть?


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Mal Hack
Дата 9.1.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(AztEK @  9.1.2007,  15:26 Найти цитируемый пост)
да я вроде всё правильно понимаю... по моему способу, программист формально имеет доступ к ф-ции include() без ограничений, но файлы ресурсов подключить не сможет - привелегий не хватит. Sardar об этом же написал, только в более грамотной форме. 

То, о чем писал Сардар - права доступа, но реализуются они через ядро, а если программист пишет обращение к файлу не используя ядра, то ему - ничего не помешает.
PM ICQ   Вверх
Sardar
Дата 9.1.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Цитата(Mal Hack @  9.1.2007,  16:59 Найти цитируемый пост)
То, о чем писал Сардар - права доступа, но реализуются они через ядро, а если программист пишет обращение к файлу не используя ядра, то ему - ничего не помешает. 

Представил одного разработчика ядра, кипятящегося о безопасности и толпу злобных программеров ищущих лазейки выполнить нативные файловые функции  smile 

Песочницу для модулей сделать не реально на PHP и это вообще бред само по себе. Это не ядро оси с модулями, это скриптовый движок сайта, каждый модуль которого должен сам согласовывать свои возможности согласно привилегиям текущего пользователя (логин/сессия). Представь как сложно (глючно и тормознуто) будет управлять привилегиями таких атомарных обьектов как файлы? В то время как привилегии для пользователя логичны и покрывают конкретный функционал (высокоуровневы).

Впрочем нет предела изврату, можно написать модуль ядра к SELinux, движок на чём угодно и контролировать любое IO... всего что есть на машине  smile 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 9.1.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Sardar, я полностью с тобой согласен!!!
PM ICQ   Вверх
awers
Дата 10.1.2007, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



А как на счет управления на уровне файловой системы?
К примеру на FreeBSD. Реально ли дать доступ так, что бы только core.php мог открывать файлы модулей? 
Правда я ещё сам понять немогу как это должно выглядеть ... 
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 10.1.2007, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



awers, нет.
PM ICQ   Вверх
IZ@TOP
Дата 2.2.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(Sardar @  9.1.2007,  19:22 Найти цитируемый пост)
Представил одного разработчика ядра, кипятящегося о безопасности и толпу злобных программеров ищущих лазейки выполнить нативные файловые функции


 smile Улыбнуло. И вообще - автор темы идет не по тому направлению развития.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
-=Ustas=-
Дата 3.2.2007, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(IZ@TOP @  2.2.2007,  14:26 Найти цитируемый пост)
smile Улыбнуло.

Аналогично smile

Если автор так трепещет за несанкционированный доступ к модулям, можно еще извратиться, и спрятать модули где-нить на сервере в новой зеландии, а доступ разрешить только по вызовам удаленных процедур, например SOAP. Хотя еще раз повторюсь - это бред.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
UhaMurad
  Дата 22.9.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 22.9.2004
Где: Махачкала

Репутация: нет
Всего: нет



В принципе можно сварганить что-то вроде такого изврата:

Код

function my_require ($filename) {
  // какие-либо действия, например проверка доступности
  return file_get_content($filename); 
}


// В коде
eval(my_require('my_lib.php'));


 smile 

а проблему запрета использования стандартного require можно решить проверкой файла модуля, убрав из него строки типа "require 'my_all.php';" с помощью регулярных выражений...

но это все, как говориться, методы "через задницу"  smile 
PM MAIL WWW   Вверх
-=Ustas=-
Дата 22.9.2007, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



UhaMurad, проснулся ты более чем через полгода. На даты не смотришь?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
UhaMurad
Дата 24.9.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 22.9.2004
Где: Махачкала

Репутация: нет
Всего: нет



Смотрю..., просто подумал раз уж тема не закрыта решил своими мыслишками поделиться с сообществом... Если здесь не принято отвечать на темы больше чем через полгода, спасибо, буду иметь в виду...
PM MAIL WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1402 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.